Estimating Demographics and Other Characteristics for Custom Spatial Features – Example Workflow

Accessing U.S. Census Bureau Data and Calculating Weighted Averages with Areal and Population Weighted Interpolation

1 Background

Note

For comments, suggestions, corrections, or questions on anything below, contact david.altare@waterboards.ca.gov, or open an issue on github.

Warning

This document is a work in progress, and may change significantly.

This document provides an example of how to use tools available from the R programming language (R Core Team 2023) to estimate characteristics of any given target spatial area(s) (e.g., neighborhoods, project boundaries, water supplier service areas, etc.) based on data from a source dataset containing the characteristic data of interest (e.g., census data, CalEnvrioScreen scores, etc.), especially when the boundaries of the source and target areas overlap but don’t necessarily align with each other. It also provides some brief background on the various types of data available from the U.S Census Bureau, and links to a few places to find more in-depth information.

This particular example estimates demographic characteristics of community water systems in the Sacramento County area (the target dataset). It uses the tidycensus R package (Walker and Herman 2023) to access selected demographic data from the U.S. Census Bureau (the source dataset) for census units whose spatial extent covers those water systems’ service areas, then uses the areal R package (Prener et al. 2019) to estimate some demographic characteristics of each water system based on that census data. It also relies on a number of other R packages, such as the tidyverse collection of packages (Wickham et al. 2019) for general data management and analysis, and the sf package (Pebesma and Bivand 2023) for working with spatial data.

This example is just intended to be a simplified demonstration of a possible workflow. For a real analysis, additional steps and considerations – that may not be covered here – may be needed to deal with data inconsistencies (e.g., missing or incomplete data), required level of precision and acceptable assumptions (e.g. more fine-grained datasets or more sophisticated techniques could be used to estimate/model population distributions), or other project-specific issues that might arise.

2 Setup

The code block below loads required packages for this analysis, and sets some user-defined options and defaults. If they aren’t already installed on your computer, you can install them with the R command install.packages('package-name') (and replace package-name with the name of the package you want to install).

# packages ----
library(tidycensus)
library(tigris)
library(tidyverse)
library(sf)
library(janitor)
library(here)
library(units)
library(areal)
library(Polychrome)
library(knitr)
library(kableExtra)
library(tmap)
library(patchwork)
library(scales)
library(digest)
library(mapview)

# conflicts ----
library(conflicted)
conflicts_prefer(dplyr::filter)

# options ----
options(scipen = 999) # turn off scientific notation
options(tigris_use_cache = TRUE) # use data caching for tigris

# reference system ----
crs_projected <- 3310 # set a common projected coordinate reference system to be used throughout this analysis - see: https://epsg.io/3310

3 Census Data Overview

This section provides some brief background on the various types of data available from the U.S. Census Bureau (a later section - Section 5 - demonstrates how to retrieve data from the U.S. Census Bureau using the tidycensus R package). Most of the information covered here comes from the book Analyzing US Census Data: Methods, Maps, and Models in R, which is a great source of information if you’d like more detail about any of the topics below (Walker 2023b).

Note

If you’re already familiar with Census data and want to skip this overview, go directly to the next section: Section 4

Different census products/surveys contain data on different variables, at different geographic scales, over varying periods of time, and with varying levels of certainty. Therefore, there are a number of judgement calls to make when determining which type of census data to use for an analysis – e.g., which data product to use (Decennial Census or American Community Survey), which geographic scale to use (e.g., Block, Block Group, Tract, etc.), what time frame to use, which variables to assess, etc.

More detailed information about U.S. Census Bureau’s data products and other topics mentioned below is available here.

3.1 Census Unit Geography / Hierarchy

Publicly available datasets from the U.S Census Bureau generally consist of individual survey responses aggregated to defined census units (e.g., census tracts) that cover varying geographic scales. Some of these units are nested and can be neatly aggregated (e.g., each census tract is composed of a collection of block groups, and each block group is composed of a collection of blocks), while other census units are outside this hierarchy (e.g., Zip Code Tabulation Areas don’t coincide with any other census unit). Figure 1 shows the relationship of all of the various census units.

Commonly used census statistical units like tracts and block groups have target population size ranges, and can be adjusted every 10 years (with the decennial census) based on population changes. For example, all ACS 5-year datasets prior to 2020 use the 2010 boundaries for tracts, block groups, and blocks, and all ACS 5-year datasets from 2020 onward (presumably through 2029) use the 2020 boundaries for those units. Census tracts are generally around 4,000 people, with a range from about 1,200 to 8,000, and block groups generally contain 600 to 3,000 people. Blocks are the smallest census units, and are “areas bounded by visible features, such as streets, roads, streams, and railroad tracks, and by nonvisible boundaries, such as selected property lines and city, township, school district, and county limits and short line-of-sight extensions of streets and roads”. For example, a census block may be “a city block bounded on all sides by streets”, while “blocks in suburban and rural areas may be larger, more irregular in shape, and bounded by a variety of features, such as roads, streams, and transmission lines”.

Caution

Census boundaries can change over time. Commonly used statistical units like tracts, block groups, and blocks tend to be revised every 10 years (with the decennial census), so it’s important to use a census boundary dataset that matches the version of the census demographic data you’re retrieving; otherwise, the demographic data may not match geographic areas in your boundary dataset. In some cases, a census unit that exists in a given year of the census data may not exist at all in a different year’s dataset, because census units can be split or merged when boundaries are revised.

For more information, see here or here or here or here.

For a list of the different geographic units available for each of the different census products/surveys (see Section 3.2) that can be accessed via the tidycensus package, go here.

Figure 1: Census Unit Hierarchies

3.2 Census Datasets / Surveys

The Decennial Census is conducted every 10 years, and is intended to provide a complete count of the US population and assist with political redistricting. As a result, it collects a relatively limited set of basic demographic data, but (should) provide a high degree of precision (i.e., in general it should provide exact counts). It is available for geographic units down to the census block (the smallest census unit available – see Section 3.1). For information about existing and planned future releases of 2020 census data products, go here.

The American Community Survey (ACS) provides a much larger array of demographic information than the Decennial Census, and is updated more frequently. The ACS is based on a sample of the population (rather than a count of the entire population, as in the Decennial Census), so it represents estimated values rather than precise counts; therefore, each data point is available as an estimate (typically labeled with an “E” in census variable codes, which are discussed in Section 3.3 ) along with an associated margin of error (typically labeled with “M” or “MOE” in census variable codes) around its estimated value.

The ACS is available in two formats. The 5-year ACS is a rolling average of 5 years of data (e.g., the 2021 5-year ACS dataset is an average of the ACS data from 2017 through 2021), and is generally available for geographic units down to the census block group (though some 5-year ACS data may only be available at less granular levels). The 1-year ACS provides data for a single year, and is only available for geographies with population greater than 65,000 (e.g., large cities and counties). Therefore, only the 5-year ACS will be useful for any analysis at a relatively fine scale (e.g., anything that requires data at or more detailed than the census tract level, or any analysis that considers smaller counties/cities – by definition, census tracts always contain significantly fewer than 65,000 people).

In addition to the Decennial Census and ACS data, a number of other census data products/surveys are also available. For example, see the censusapi R package (here or here) for access to over 300 census API endpoints. For historical census data, see the discussion here on using NHGIS, IPUMS, and the ipumsr package.

3.3 Census Variables / Codes

Each census product collects data for many different demographic variables, and each variable is generally associated with an identifier code. In order to access census data programmatically, you often need to know the code associated with each variable of interest. When determining which variables to use, you need to consider what census product contains those variables (see Section 3.2) and how they differ in terms of time frame, precision, spatial granularity (see Section 3.1), etc.

The tidycensus package offers a convenient generic way to search for variables across different census products using the load_variables() function, as described here.

The following websites may also be helpful for exploring the various census data products and finding the variable names and codes they contain:

4 Target Data Boundaries (Water Systems)

In this section, we’ll get the service area boundaries for Community Water Systems within the Sacramento County area. This will serve as the target dataset – i.e., the set of areas which we’ll be estimating the characteristics of – and will also be used to specifying what census data we want to retrieve. We’ll also get a dataset of county boundaries which overlap the water service areas in this study, which can also help with specifying what census data to access and/or with making maps and visualizations.

4.1 Read Water System Data

In this case, we’ll get the water system dataset from a shapefile that’s saved locally, then transform that dataset into a common coordinate reference system for mapping and analysis (which is defined above in the variable crs_projected).

This water system dataset comes from the California Drinking Water System Area Boundaries dataset. For this example, the dataset has been pre-filtered for systems within Sacramento County (by selecting records where the COUNTY field is “SACRAMENTO”) and for Community Water Systems (by selecting records where the STATE_CLAS field is “COMMUNITY”). Some un-needed fields have also been dropped, remaining fields have been re-orderd.

water_systems_sac <- st_read(here('02_data_input', 
                                  'water_supplier_boundaries_sac', 
                                  'System_Area_Boundary_Layer_Sac.shp')) %>% 
    st_transform(crs_projected) # transform to common coordinate system

We can use the glimpse function (below) to take get a sense of what type of information is available in the water system dataset and how it’s structured.

Note that this dataset already includes a POPULATION variable that indicates the population served by each water system. However, for this analysis we’ll be making our own estimate of the population within each system’s service area based on U.S. Census Bureau data and the spatial representation of the system boundaries. I don’t know exactly how the POPULATION variable was derived in this dataset, and it likely will not exactly match the population estimates from this analysis, but may serve as a useful check to make sure our estimates are reasonable.

glimpse(water_systems_sac)
Rows: 62
Columns: 12
$ WATER_SY_1 <chr> "HOOD WATER MAINTENCE DIST [SWS]", "MC CLELLAN MHP", "MAGNO…
$ WATER_SYST <chr> "CA3400101", "CA3400179", "CA3400130", "CA3400135", "CA3400…
$ GLOBALID   <chr> "{36268DB3-9DB2-4305-A85A-2C3A85F20F34}", "{E3BF3C3E-D516-4…
$ BOUNDARY_T <chr> "Water Service Area", "Water Service Area", "Water Service …
$ OWNER_TYPE <chr> "L", "P", "P", "P", "P", "P", "P", "P", "P", "P", "P", "P",…
$ COUNTY     <chr> "SACRAMENTO", "SACRAMENTO", "SACRAMENTO", "SACRAMENTO", "SA…
$ REGULATING <chr> "LPA64 - SACRAMENTO COUNTY", "LPA64 - SACRAMENTO COUNTY", "…
$ FEDERAL_CL <chr> "COMMUNITY", "COMMUNITY", "COMMUNITY", "COMMUNITY", "COMMUN…
$ STATE_CLAS <chr> "COMMUNITY", "COMMUNITY", "COMMUNITY", "COMMUNITY", "COMMUN…
$ SERVICE_CO <dbl> 82, 199, 34, 64, 128, 83, 28, 50, 164, 5684, 14798, 115, 33…
$ POPULATION <dbl> 100, 700, 40, 150, 256, 150, 32, 100, 350, 18005, 44928, 20…
$ geometry   <MULTIPOLYGON [m]> MULTIPOLYGON (((-132703 403..., MULTIPOLYGON (…

4.1.1 Alternative Data Retrieval Method

Reading in data from a shapefile is shown above because it’s likely one of the more common ways that users will access their target boundary data. However, depending on the dataset, there may be other ways to access the data. For example, the code chunk below demonstrates an alternative – using the arcgislayers package (Parry 2023) – that connects directly to the source dataset (to retrieve the most recent version) and applies the filters needed to reproduce the dataset in the System_Area_Boundary_Layer_Sac.shp file. Note that this code is not actually used; it is just presented here for reference.

# load arcgislayers package (see: https://r.esri.com/arcgislayers/index.html)
install.packages('pak') # only needed if the pak package is not already installed
pak::pkg_install("R-ArcGIS/arcgislayers", dependencies = TRUE)

library(arcgislayers)

# define link to data source
url_feature <- 'https://gispublic.waterboards.ca.gov/portalserver/rest/services/Drinking_Water/California_Drinking_Water_System_Area_Boundaries/FeatureServer/0'

# connect to data source
water_systems_feature_layer <- arc_open(url_feature)

# download and filter data from source
water_systems_sac <- arc_select(
  water_systems_feature_layer,
  # apply filters
  where = "COUNTY = 'SACRAMENTO' AND STATE_CLASSIFICATION = 'COMMUNITY'",
  # select fields
  fields = c('WATER_SYSTEM_NAME', 'WATER_SYSTEM_NUMBER', 'GLOBALID',
             'BOUNDARY_TYPE', 'OWNER_TYPE_CODE', 'COUNTY',
             'REGULATING_AGENCY', 'FEDERAL_CLASSIFICATION', 'STATE_CLASSIFICATION',
             'SERVICE_CONNECTIONS', 'POPULATION')) %>%
    # transform to common coordinate system
    st_transform(crs_projected) %>%
    # rename fields to match names from the shapefile (which automatically truncates field names)
    rename(WATER_SY_1 = WATER_SYSTEM_NAME,
           WATER_SYST = WATER_SYSTEM_NUMBER,
           BOUNDARY_T = BOUNDARY_TYPE,
           OWNER_TYPE = OWNER_TYPE_CODE,
           REGULATING = REGULATING_AGENCY,
           FEDERAL_CL = FEDERAL_CLASSIFICATION,
           STATE_CLAS = STATE_CLASSIFICATION,
           SERVICE_CO = SERVICE_CONNECTIONS)

4.2 Get County Boundaries

When accessing census data, it may be useful to know which counties overlap the target dataset, as described below in Section 5 (note that, even though the dataset is filtered for systems in Sacramento county, there are some systems whose boundaries extend into neighboring counties). County boundaries may also be useful for making maps in later stages of the analysis. We can get a dataset of county boundaries in California from the TIGER dataset, which can be accessed with R using the tigris R package (Walker 2023a).

counties_ca <- counties(state = 'CA', 
                        cb = TRUE) %>% # simplified
    st_transform(crs_projected) # transform to common coordinate system

Then, we can get a list of counties that overlap with the boundaries of the Sacramento area community water systems obtained above.

counties_overlap <- counties_ca %>% st_filter(water_systems_sac, 
                                           .predicate = st_overlaps)

counties_list <- counties_overlap %>% pull(NAME)

The counties in the counties_list variable are: San Joaquin, Yolo, Placer, Sacramento.

Figure 2 shows the water systems and county boundaries in an interactive map.

# sac_county <- counties_ca %>% filter(NAME == 'Sacramento')
mapview(counties_overlap, alpha.regions = 0, zcol = 'NAME', layer.name = 'County', legend = FALSE) + 
    mapview(water_systems_sac, zcol = 'WATER_SY_1', layer.name = 'Water System', legend = FALSE)
Figure 2: Selected water systems (with county boundaries for reference).

5 Accessing Census Data

The following sections demonstrate how to retrieve census data from the Decennial Census and the ACS using the tidycensus R package.

In order to use the tidycensus R package, you’ll need to obtain a personal API key from the US Census Bureau (which is free and available to anyone) by signing up here: http://api.census.gov/data/key_signup.html. Once you have your API key, you’ll need to register it in R by entering the command census_api_key(key = "YOUR API KEY", install = TRUE) in the console. Note that the install = TRUE argument means that the key is saved for all future R sessions, so you’ll only need to run that command once on your computer (rather than including it in your scripts). Alternatively, you could save your key to an environment variable and retrieve it using Sys.getenv(). Either way will help you avoid the possibility of entering your API key into any scripts that could be shared publicly.

Caution

Because the boundaries of census units (e.g., tracts, block groups, blocks, etc) can change over time, it’s important to make sure that the version (year) of the census data you’re retrieving matches the version of the census boundary dataset you’re using. The methods shown below retrieve the census boundary dataset together with the census demographic data, which ensures that this won’t be a potential problem. However, if you use a different workflow that retrieves the geographic boundaries and demographic data via separate processes, you should ensure that the versions are consistent.

5.1 Decennial Census

This section retrieves census data from the 2020 U.S. Decennial Census, using the get_decennial function from the tidycensus package. For this example we’re getting data at the ‘Block Group’ level (with the geography = 'block group' argument), for the counties defined above in the counties_list variable (with the county = counties_list argument). By setting the geometry = TRUE argument we’ll be able to get the spatial data – i.e., the boundaries of the census block groups – along with the tabular data defined in the variables argument (see Section 3.3 for information about how to find variable codes). In this case, we’re first saving the census variables we want in the census_vars_decennial object, and also providing descriptive names associated with each variable code, which makes the data easier to work with later. Also, while by default the tidycensus package returns data in long/tidy format, we’re getting the data in wide format for this example (by specifying output = 'wide') because it’ll be easier to work with for the interpolation method described below to estimate demographics for non-census geographies.

Note that, to the extent possible, using census data at the most granular spatial level should provide the best results when estimating demographics for areas whose boundaries don’t align with census unit boundaries. However, depending on the use case, it may require too much time and computational resources to use the most granular spatial data, and may not be necessary to obtain a reasonable estimate. As noted above, in general the most granular level of Decennial Census data available is at the ‘Block’ level (though Decennial Census data may not be available for all data types at the block level, due to data privacy issues), but this example gets data at the ‘Block Group’ level for speed and simplicity. Data at the ‘Block’ level may be a better choice for a real-world analysis if possible.

Also, as a side note, tidycensus returns the Census Bureau’s cartographic boundary shapefiles by default (as opposed to the core TIGER/Line shapefiles). Those default cartographic boundary shapefiles are pre-clipped to the US coastline, and are smaller/faster to process (alternatively you can use cb = FALSE to get the TIGER/Line data) (see here). So the default spatial data returned by tidycensus may be somewhat different than the default spatial data returned by the tigris package, but in general I find it’s best to use the default tidycensus spatial data.

# define variables to pull from the decennial census
census_vars_decennial <- c(
    'population_hispanic_or_latino' = 'P2_002N', # Total Hispanic or Latino
                                           'population_white' = 'P2_005N', # White (Not Hispanic or Latino)
                                           'population_black_or_african_american' = 'P2_006N', # Black or African American (Not Hispanic or Latino)
                                           'population_native_american_or_alaska_native' = 'P2_007N', # American Indian and Alaska Native (Not Hispanic or Latino)
                                           'population_asian' = 'P2_008N', # Asian (Not Hispanic or Latino)
                                           'population_pacific_islander' = 'P2_009N', # Native Hawaiian and Other Pacific Islander (Not Hispanic or Latino)
                                           'population_other' = 'P2_010N', # Some other race (Not Hispanic or Latino)
                                           'population_multiple' = 'P2_011N', # Two or more races (Not Hispanic or Latino)
                                           'population_total' = 'P2_001N'
)

# get census data
census_data_decennial <- get_decennial(geography = 'block group', # can be 'block', 'block group', 'tract', 'county', etc.
                                       state = 'CA', 
                                       county = counties_list,
                                       year = 2020,
                                       variables = census_vars_decennial,
                                       output = 'wide', # can be 'wide' or 'tidy'
                                       geometry = TRUE,
                                       cache_table = TRUE) 

The output is an sf object (i.e., a dataframe-like object that also includes spatial data), in wide format, where each row represents a census unit, and the population of each racial/ethnic group is reported in a separate column. Here’s a view of the contents and structure of the Decennial Census data that’s returned:

glimpse(census_data_decennial)
Rows: 1,915
Columns: 12
$ GEOID                                       <chr> "060770010004", "060770031…
$ NAME                                        <chr> "Block Group 4, Census Tra…
$ population_hispanic_or_latino               <dbl> 292, 588, 603, 851, 158, 1…
$ population_white                            <dbl> 466, 603, 212, 1178, 801, …
$ population_black_or_african_american        <dbl> 19, 155, 26, 137, 7, 11, 5…
$ population_native_american_or_alaska_native <dbl> 2, 3, 5, 17, 1, 4, 16, 9, …
$ population_asian                            <dbl> 48, 150, 83, 426, 40, 75, …
$ population_pacific_islander                 <dbl> 1, 6, 1, 7, 0, 5, 4, 41, 2…
$ population_other                            <dbl> 7, 6, 0, 27, 1, 8, 7, 25, …
$ population_multiple                         <dbl> 50, 108, 20, 215, 81, 103,…
$ population_total                            <dbl> 885, 1619, 950, 2858, 1089…
$ geometry                                    <MULTIPOLYGON [°]> MULTIPOLYGON …

5.2 American Community Survey (ACS)

To get data from the ACS, you can use the get_acs() function, which is very similar to the get_decennial() function used above.

Note that for this dataset we’ve also included statements to get additional socio-economic data, such as counts of population below and above the poverty line, median household income, and income profile data (income by bracket). Similar to above, we’re first saving the census variables we want in the census_vars_acs object, and also providing descriptive names associated with each variable code to make the data easier to work with later.

# set year
acs_year <- 2022

# define variables to pull from the ACS
census_vars_acs <- c(
    
    # --- population variables ---
    'population_total' = 'B01003_001',
    'population_hispanic_or_latino' = 'B03002_012', # Total Hispanic or Latino
    'population_white' = 'B03002_003', # White (Not Hispanic or Latino)
    'population_black_or_african_american' = 'B03002_004', # Black or African American (Not Hispanic or Latino)
    'population_native_american_or_alaska_native' = 'B03002_005', # American Indian and Alaska Native (Not Hispanic or Latino)
    'population_asian' = 'B03002_006', # Asian (Not Hispanic or Latino)
    'population_pacific_islander' = 'B03002_007', # Native Hawaiian and Other Pacific Islander (Not Hispanic or Latino)
    'population_other' = 'B03002_008', # Some other race (Not Hispanic or Latino)
    'population_multiple' = 'B03002_009', # Two or more races (Not Hispanic or Latino)
    
    # --- poverty variables ---
    'poverty_total_assessed' = 'B17021_001', # also available from 'B17020_001' (at the tract level only). Total population for whom poverty status is determined. Poverty status was determined for all people except institutionalized people, people in military group quarters, people in college dormitories, and unrelated individuals under 15 years old. These groups were excluded from the numerator and denominator when calculating poverty rates.
    'poverty_below_count' = 'B17021_002', # also available from 'B17020_002' (at the tract level only). Population whose income in the past 12 months is below federal poverty level. A family and every individual in it are considered to be in poverty if the family's total income is less than the dollar value of a threshold that varies depending upon size of family, number of children, & age of householder (for 1- & 2- person households). Income is the sum of wage/salary income; net self-employment income; interest/dividends/net rental/royalty income/income from estates & trusts; Social Security/Railroad Retirement income; Supplemental Security Income (SSI); public assistance/welfare payments; retirement/survivor/disability pensions; & all other income.
    'poverty_above_count' = 'B17021_019', # also available from 'B17020_010' (at the tract level only). Population whose income in the past 12 months is at or above federal poverty level. A family and every individual in it are considered to be in poverty if the family's total income is less than the dollar value of a threshold that varies depending upon size of family, number of children, & age of householder (for 1- & 2- person households). Income is the sum of wage/salary income; net self-employment income; interest/dividends/net rental/royalty income/income from estates & trusts; Social Security/Railroad Retirement income; Supplemental Security Income (SSI); public assistance/welfare payments; retirement/survivor/disability pensions; & all other income.
    
    # --- household variables ---
    'household_count' = 'B19001_001', # also available from variable 'B19053_001'. A household includes all the people who occupy a housing unit - a house, an apartment, a mobile home, a group of rooms, or a single room that is occupied. People not living in households are classified as living in group quarters.
    'average_household_size' = 'B25010_001', # A measure obtained by dividing the number of people living in occupied housing units by the total number of occupied housing units. This measure is rounded to the nearest hundredth.
    
    # --- household income variables ---
    'median_household_income' = 'B19013_001', # also available from 'B19019_001' (at the tract level only). Income in the past 12 months is the sum of wage or salary income; net self-employment income; interest, dividends, or net rental or royalty income or income from estates and trusts; Social Security or Railroad Retirement income; Supplemental Security Income (SSI); public assistance or welfare payments; retirement, survivor, or disability pensions; and all other income.
    'households_income_below_10k' = 'B19001_002', # count of households with income below $10,000 
    'households_income_10k_15k' = 'B19001_003', # count of households with income $10,000 to $15,000 
    'households_income_15k_20k' = 'B19001_004', 
    'households_income_20k_25k' = 'B19001_005', 
    'households_income_25k_30k' = 'B19001_006', 
    'households_income_30k_35k' = 'B19001_007', 
    'households_income_35k_40k' = 'B19001_008', 
    'households_income_40k_45k' = 'B19001_009', 
    'households_income_45k_50k' = 'B19001_010', 
    'households_income_50k_60k' = 'B19001_011', 
    'households_income_60k_75k' = 'B19001_012', 
    'households_income_75k_100k' = 'B19001_013', 
    'households_income_100k_125k' = 'B19001_014', 
    'households_income_125k_150k' = 'B19001_015', 
    'households_income_150k_200k' = 'B19001_016',
    'households_income_above_200k' = 'B19001_017', # count of households with income above $200,000

    # --- housing costs (% of household income) ---
    # Housing Costs as a Percentage of Household Income in the past 12 months - NOTE: THIS TABLE IS NEW FOR THE 2022 ACS, AND WON'T BE AVAILABLE FOR PREVIOUS YEARS - Table B25140 shows the count of households paying more than 30% of their income towards housing costs broken out by three tenure categories (owned with a mortgage, owned without a mortgage, and rented). The table also shows the number of households paying more than 50% of their income toward housing costs.
    # 'households_count' = 'B25140_001', 
    'households_mortgage_total' = 'B25140_002',
    'households_mortgage_over30pct' = 'B25140_003',
    'households_mortgage_over50pct' = 'B25140_004',
    'households_no_mortgage_total' = 'B25140_006',
    'households_no_mortgage_over30pct' = 'B25140_007',
    'households_no_mortgage_over50pct' = 'B25140_008',
    'households_rent_total' = 'B25140_010',
    'households_rent_over30pct' = 'B25140_011',
    'households_rent_over50pct' = 'B25140_012',
    
    # --- other income / economic variables ---
    'per_capita_income' = 'B19301_001' # note: per capita income by race (at block group level) available in table B19301I
)

# get census data
census_data_acs <- get_acs(geography = 'block group',
                           state = 'CA', 
                           county = counties_list,
                           year = acs_year,
                           survey = 'acs5',
                           variables = census_vars_acs, 
                           output = 'wide', # can be 'wide' or 'tidy'
                           geometry = TRUE,
                           cache_table = TRUE)

The output is an sf object (i.e., a dataframe-like object that also includes spatial data), in wide format, where each row represents a census unit, and the population of each racial/ethnic group, as well as the median household income, is reported in a separate column. Here’s a view of the contents and structure of the 2022 5-year ACS data that’s returned:

glimpse(census_data_acs)
Rows: 1,915
Columns: 85
$ GEOID                                        <chr> "061130107041", "06077004…
$ NAME                                         <chr> "Block Group 1; Census Tr…
$ population_totalE                            <dbl> 2643, 695, 1768, 1881, 75…
$ population_totalM                            <dbl> 312, 291, 520, 585, 316, …
$ population_hispanic_or_latinoE               <dbl> 370, 36, 38, 327, 545, 37…
$ population_hispanic_or_latinoM               <dbl> 112, 24, 59, 298, 273, 28…
$ population_whiteE                            <dbl> 1609, 659, 1627, 1337, 11…
$ population_whiteM                            <dbl> 247, 297, 521, 475, 120, …
$ population_black_or_african_americanE        <dbl> 100, 0, 0, 1, 26, 272, 39…
$ population_black_or_african_americanM        <dbl> 62, 13, 13, 3, 42, 251, 2…
$ population_native_american_or_alaska_nativeE <dbl> 2, 0, 41, 0, 0, 0, 0, 0, …
$ population_native_american_or_alaska_nativeM <dbl> 4, 13, 58, 13, 13, 13, 13…
$ population_asianE                            <dbl> 306, 0, 45, 0, 13, 105, 5…
$ population_asianM                            <dbl> 107, 13, 71, 13, 21, 116,…
$ population_pacific_islanderE                 <dbl> 0, 0, 0, 98, 0, 0, 0, 0, …
$ population_pacific_islanderM                 <dbl> 13, 13, 13, 98, 13, 13, 1…
$ population_otherE                            <dbl> 5, 0, 0, 0, 0, 39, 0, 0, …
$ population_otherM                            <dbl> 9, 13, 13, 13, 13, 63, 13…
$ population_multipleE                         <dbl> 251, 0, 17, 118, 57, 13, …
$ population_multipleM                         <dbl> 123, 13, 27, 125, 76, 20,…
$ poverty_total_assessedE                      <dbl> 2523, 695, 1768, 1847, 75…
$ poverty_total_assessedM                      <dbl> 308, 291, 520, 582, 316, …
$ poverty_below_countE                         <dbl> 760, 98, 101, 328, 151, 2…
$ poverty_below_countM                         <dbl> 209, 97, 83, 370, 130, 22…
$ poverty_above_countE                         <dbl> 1763, 597, 1667, 1519, 60…
$ poverty_above_countM                         <dbl> 255, 277, 517, 423, 292, …
$ household_countE                             <dbl> 958, 246, 680, 718, 191, …
$ household_countM                             <dbl> 89, 98, 167, 162, 67, 151…
$ average_household_sizeE                      <dbl> 2.56, 2.65, 2.59, 2.62, 3…
$ average_household_sizeM                      <dbl> 0.20, 0.70, 0.33, 0.40, 1…
$ median_household_incomeE                     <dbl> 64821, 96250, 123500, 667…
$ median_household_incomeM                     <dbl> 18076, 90011, 76420, 1532…
$ households_income_below_10kE                 <dbl> 107, 46, 18, 47, 0, 10, 3…
$ households_income_below_10kM                 <dbl> 51, 52, 29, 38, 13, 16, 2…
$ households_income_10k_15kE                   <dbl> 53, 0, 0, 0, 0, 24, 23, 3…
$ households_income_10k_15kM                   <dbl> 37, 13, 13, 13, 13, 41, 2…
$ households_income_15k_20kE                   <dbl> 25, 0, 0, 13, 0, 18, 0, 7…
$ households_income_15k_20kM                   <dbl> 25, 13, 13, 19, 13, 29, 1…
$ households_income_20k_25kE                   <dbl> 50, 0, 0, 12, 0, 0, 66, 0…
$ households_income_20k_25kM                   <dbl> 33, 13, 13, 21, 13, 13, 5…
$ households_income_25k_30kE                   <dbl> 32, 13, 30, 74, 10, 35, 8…
$ households_income_25k_30kM                   <dbl> 28, 21, 36, 66, 17, 42, 9…
$ households_income_30k_35kE                   <dbl> 48, 11, 0, 10, 28, 16, 0,…
$ households_income_30k_35kM                   <dbl> 38, 17, 13, 17, 42, 19, 1…
$ households_income_35k_40kE                   <dbl> 14, 0, 0, 24, 14, 0, 73, …
$ households_income_35k_40kM                   <dbl> 16, 13, 13, 23, 17, 13, 6…
$ households_income_40k_45kE                   <dbl> 17, 0, 19, 17, 0, 0, 36, …
$ households_income_40k_45kM                   <dbl> 18, 13, 30, 18, 13, 13, 4…
$ households_income_45k_50kE                   <dbl> 39, 0, 15, 15, 0, 47, 11,…
$ households_income_45k_50kM                   <dbl> 42, 13, 25, 19, 13, 63, 2…
$ households_income_50k_60kE                   <dbl> 74, 40, 76, 28, 38, 90, 7…
$ households_income_50k_60kM                   <dbl> 52, 63, 78, 35, 36, 112, …
$ households_income_60k_75kE                   <dbl> 46, 9, 126, 156, 14, 61, …
$ households_income_60k_75kM                   <dbl> 24, 15, 102, 137, 18, 52,…
$ households_income_75k_100kE                  <dbl> 40, 4, 15, 71, 27, 74, 75…
$ households_income_75k_100kM                  <dbl> 25, 10, 25, 50, 45, 72, 4…
$ households_income_100k_125kE                 <dbl> 85, 31, 53, 125, 10, 0, 0…
$ households_income_100k_125kM                 <dbl> 36, 36, 51, 57, 16, 13, 1…
$ households_income_125k_150kE                 <dbl> 42, 20, 101, 10, 8, 22, 6…
$ households_income_125k_150kM                 <dbl> 26, 28, 81, 16, 12, 30, 7…
$ households_income_150k_200kE                 <dbl> 68, 0, 173, 30, 42, 0, 24…
$ households_income_150k_200kM                 <dbl> 39, 13, 134, 29, 40, 13, …
$ households_income_above_200kE                <dbl> 218, 72, 54, 86, 0, 8, 0,…
$ households_income_above_200kM                <dbl> 61, 65, 45, 60, 13, 16, 1…
$ households_mortgage_totalE                   <dbl> 254, 94, 251, 452, 97, 19…
$ households_mortgage_totalM                   <dbl> 66, 72, 105, 164, 62, 151…
$ households_mortgage_over30pctE               <dbl> 36, 25, 88, 223, 32, 97, …
$ households_mortgage_over30pctM               <dbl> 24, 27, 87, 144, 42, 118,…
$ households_mortgage_over50pctE               <dbl> 16, 14, 68, 38, 28, 13, 9…
$ households_mortgage_over50pctM               <dbl> 13, 23, 80, 38, 42, 20, 1…
$ households_no_mortgage_totalE                <dbl> 129, 80, 324, 226, 37, 0,…
$ households_no_mortgage_totalM                <dbl> 33, 54, 158, 65, 31, 13, …
$ households_no_mortgage_over30pctE            <dbl> 0, 0, 18, 126, 0, 0, 21, …
$ households_no_mortgage_over30pctM            <dbl> 13, 13, 29, 75, 13, 13, 2…
$ households_no_mortgage_over50pctE            <dbl> 0, 0, 18, 91, 0, 0, 0, 15…
$ households_no_mortgage_over50pctM            <dbl> 13, 13, 29, 81, 13, 13, 1…
$ households_rent_totalE                       <dbl> 575, 72, 105, 40, 57, 215…
$ households_rent_totalM                       <dbl> 82, 74, 95, 40, 44, 95, 1…
$ households_rent_over30pctE                   <dbl> 426, 0, 90, 30, 18, 110, …
$ households_rent_over30pctM                   <dbl> 86, 13, 95, 36, 23, 75, 1…
$ households_rent_over50pctE                   <dbl> 319, 0, 13, 9, 18, 64, 12…
$ households_rent_over50pctM                   <dbl> 85, 13, 23, 14, 23, 61, 1…
$ per_capita_incomeE                           <dbl> 48316, 49981, 45172, 3434…
$ per_capita_incomeM                           <dbl> 8024, 18092, 7975, 8289, …
$ geometry                                     <MULTIPOLYGON [°]> MULTIPOLYGON…

Note that the dataset that’s returned includes fields corresponding to Margin of Error (MOE) for each variable we’ve requested (these are the fields that end with two digits and an M – e.g., “001M”), since, as noted above in Section 3.2 , the ACS is based on a sample of the population and reports estimated values.

Tip

It is possible to calculate MOEs for derived estimates – e.g., when aggregating groups of census units – and in many cases it may be worthwhile to do that to provide extra context to the data. However, it may be difficult to do for more complex aggregations, such as the area and population weighted interpolations shown below. For guidance on how calculate MOEs for some types of derived estimates, see this document.

Because we won’t be incorporating those MOEs into the analysis below, we can drop them for this example, then clean up the field names.

# drop MOE fields
census_data_acs <- census_data_acs %>% 
     select(-matches('M$')) # the $ specifies "ends with"

# clean names
names(census_data_acs) <- names(census_data_acs) %>% 
    str_remove('E$') %>% # remove 'E' (estimate) from field names
    str_replace('NAM', 'NAME') # add 'E' back to NAME field

Here’s a view of the contents and structure of the revised 2022 5-year ACS dataset:

glimpse(census_data_acs)
Rows: 1,915
Columns: 44
$ GEOID                                       <chr> "061130107041", "060770049…
$ NAME                                        <chr> "Block Group 1; Census Tra…
$ population_total                            <dbl> 2643, 695, 1768, 1881, 754…
$ population_hispanic_or_latino               <dbl> 370, 36, 38, 327, 545, 376…
$ population_white                            <dbl> 1609, 659, 1627, 1337, 113…
$ population_black_or_african_american        <dbl> 100, 0, 0, 1, 26, 272, 394…
$ population_native_american_or_alaska_native <dbl> 2, 0, 41, 0, 0, 0, 0, 0, 2…
$ population_asian                            <dbl> 306, 0, 45, 0, 13, 105, 50…
$ population_pacific_islander                 <dbl> 0, 0, 0, 98, 0, 0, 0, 0, 0…
$ population_other                            <dbl> 5, 0, 0, 0, 0, 39, 0, 0, 0…
$ population_multiple                         <dbl> 251, 0, 17, 118, 57, 13, 1…
$ poverty_total_assessed                      <dbl> 2523, 695, 1768, 1847, 754…
$ poverty_below_count                         <dbl> 760, 98, 101, 328, 151, 27…
$ poverty_above_count                         <dbl> 1763, 597, 1667, 1519, 603…
$ household_count                             <dbl> 958, 246, 680, 718, 191, 4…
$ average_household_size                      <dbl> 2.56, 2.65, 2.59, 2.62, 3.…
$ median_household_income                     <dbl> 64821, 96250, 123500, 6676…
$ households_income_below_10k                 <dbl> 107, 46, 18, 47, 0, 10, 30…
$ households_income_10k_15k                   <dbl> 53, 0, 0, 0, 0, 24, 23, 34…
$ households_income_15k_20k                   <dbl> 25, 0, 0, 13, 0, 18, 0, 7,…
$ households_income_20k_25k                   <dbl> 50, 0, 0, 12, 0, 0, 66, 0,…
$ households_income_25k_30k                   <dbl> 32, 13, 30, 74, 10, 35, 80…
$ households_income_30k_35k                   <dbl> 48, 11, 0, 10, 28, 16, 0, …
$ households_income_35k_40k                   <dbl> 14, 0, 0, 24, 14, 0, 73, 0…
$ households_income_40k_45k                   <dbl> 17, 0, 19, 17, 0, 0, 36, 0…
$ households_income_45k_50k                   <dbl> 39, 0, 15, 15, 0, 47, 11, …
$ households_income_50k_60k                   <dbl> 74, 40, 76, 28, 38, 90, 73…
$ households_income_60k_75k                   <dbl> 46, 9, 126, 156, 14, 61, 3…
$ households_income_75k_100k                  <dbl> 40, 4, 15, 71, 27, 74, 75,…
$ households_income_100k_125k                 <dbl> 85, 31, 53, 125, 10, 0, 0,…
$ households_income_125k_150k                 <dbl> 42, 20, 101, 10, 8, 22, 67…
$ households_income_150k_200k                 <dbl> 68, 0, 173, 30, 42, 0, 24,…
$ households_income_above_200k                <dbl> 218, 72, 54, 86, 0, 8, 0, …
$ households_mortgage_total                   <dbl> 254, 94, 251, 452, 97, 190…
$ households_mortgage_over30pct               <dbl> 36, 25, 88, 223, 32, 97, 4…
$ households_mortgage_over50pct               <dbl> 16, 14, 68, 38, 28, 13, 9,…
$ households_no_mortgage_total                <dbl> 129, 80, 324, 226, 37, 0, …
$ households_no_mortgage_over30pct            <dbl> 0, 0, 18, 126, 0, 0, 21, 2…
$ households_no_mortgage_over50pct            <dbl> 0, 0, 18, 91, 0, 0, 0, 15,…
$ households_rent_total                       <dbl> 575, 72, 105, 40, 57, 215,…
$ households_rent_over30pct                   <dbl> 426, 0, 90, 30, 18, 110, 1…
$ households_rent_over50pct                   <dbl> 319, 0, 13, 9, 18, 64, 129…
$ per_capita_income                           <dbl> 48316, 49981, 45172, 34343…
$ geometry                                    <MULTIPOLYGON [°]> MULTIPOLYGON …

For further analysis, we may want to get the statewide data as a baseline for comparison (this could also be done for other scales, like the county level). We can use a similar process to get that data and clean/format it to match the more detailed data obtained above. Note that in this case we’re also using the 5-year ACS (even though the 1-year ACS is also available at the statewide level, and would provide more up-to-date data) so that the statewide data will be directly comparable to the block group level data obtained above.

census_data_acs_state <- get_acs(geography = 'state',
                                 state = 'CA', 
                                 year = acs_year,
                                 survey = 'acs5',
                                 variables = census_vars_acs, 
                                 output = 'wide', # can be 'wide' or 'tidy'
                                 geometry = TRUE,
                                 cache_table = TRUE) %>% 
    select(-matches('M$')) %>%  # the $ specifies "ends with"
    # clean names (note this is a little different than the way we renamed fields above, either works)
    rename_with(.fn = ~ str_remove(., # remove 'E' (estimate) from field names
                                    pattern = 'E$')) %>% 
    rename_with(.fn = ~ str_replace(., # add 'E' back to NAME field
                                    pattern = 'NAM', 
                                    replacement = 'NAME'))

Here’s a view of the contents and structure of the revised 2022 5-year ACS statewide dataset:

glimpse(census_data_acs_state)
Rows: 1
Columns: 44
$ GEOID                                       <chr> "06"
$ NAME                                        <chr> "California"
$ population_total                            <dbl> 39356104
$ population_hispanic_or_latino               <dbl> 15617930
$ population_white                            <dbl> 13848294
$ population_black_or_african_american        <dbl> 2102510
$ population_native_american_or_alaska_native <dbl> 114271
$ population_asian                            <dbl> 5861649
$ population_pacific_islander                 <dbl> 135460
$ population_other                            <dbl> 176652
$ population_multiple                         <dbl> 1499338
$ poverty_total_assessed                      <dbl> 38643585
$ poverty_below_count                         <dbl> 4685272
$ poverty_above_count                         <dbl> 33958313
$ household_count                             <dbl> 13315822
$ average_household_size                      <dbl> 2.89
$ median_household_income                     <dbl> 91905
$ households_income_below_10k                 <dbl> 589276
$ households_income_10k_15k                   <dbl> 427356
$ households_income_15k_20k                   <dbl> 348598
$ households_income_20k_25k                   <dbl> 393094
$ households_income_25k_30k                   <dbl> 405899
$ households_income_30k_35k                   <dbl> 393612
$ households_income_35k_40k                   <dbl> 377591
$ households_income_40k_45k                   <dbl> 386978
$ households_income_45k_50k                   <dbl> 388905
$ households_income_50k_60k                   <dbl> 764521
$ households_income_60k_75k                   <dbl> 1065431
$ households_income_75k_100k                  <dbl> 1595276
$ households_income_100k_125k                 <dbl> 1337354
$ households_income_125k_150k                 <dbl> 1032621
$ households_income_150k_200k                 <dbl> 1429049
$ households_income_above_200k                <dbl> 2380261
$ households_mortgage_total                   <dbl> 5067173
$ households_mortgage_over30pct               <dbl> 1796037
$ households_mortgage_over50pct               <dbl> 775704
$ households_no_mortgage_total                <dbl> 2340188
$ households_no_mortgage_over30pct            <dbl> 352984
$ households_no_mortgage_over50pct            <dbl> 180034
$ households_rent_total                       <dbl> 5908461
$ households_rent_over30pct                   <dbl> 2933613
$ households_rent_over50pct                   <dbl> 1528715
$ per_capita_income                           <dbl> 45591
$ geometry                                    <MULTIPOLYGON [°]> MULTIPOLYGON (((-118.6044 …

5.3 Plot Results

Figure 3 shows the datasets that we’ll use below to compute water system demographics (zoomed in to the area around the water systems in this study). Each water system – the target dataset – is shown with a different (randomly chosen) color. The boundaries of the census data – the source dataset – are shown in red; in this case we’ll use the 2022 5-year ACS dataset. County boundaries are shown in grey (Sacramento county is show with a bold grey line).

# get the map boundaries, using the boundaries of the water suppliers and the 
# Sacramento county boundary
bounds_map <- counties_ca %>% 
    filter(NAME == 'Sacramento') %>% 
    st_union(water_systems_sac) %>% 
    st_buffer(100) %>% 
    st_bbox()

# make a color palette with a distinct (random) color for supplier 
set.seed(12345)
pal <- createPalette(nrow(water_systems_sac),
                     c("#FF0000", "#00FF00", "#0000FF"),
                     range = c(30, 80))

# make the plot
plot_census <- ggplot() +
    geom_sf(data = water_systems_sac,
            aes(fill = WATER_SYST, alpha = 0.8),
            # fill = alpha('blue', 0.8),
            color = 'black', 
            linewidth = 0.1,
            show.legend = FALSE) +
    scale_fill_manual(values = unname(pal)) +
    geom_sf(data = census_data_acs %>% 
                st_transform(crs_projected),
            fill = NA,
            color = alpha('red', 1),
            linewidth = 0.1) +
    geom_sf(data = counties_ca %>%
                filter(NAME %in% counties_list),
            fill = NA,
            color = 'grey',
            linewidth = 0.5) +
    geom_sf(data = counties_ca %>%
                filter(NAME == 'Sacramento'),
            fill = NA,
            color = 'darkgrey',
            linewidth = 1) + # bold line for Sacramento County
    coord_sf(xlim = c(bounds_map$xmin, bounds_map$xmax), 
             ylim = c(bounds_map$ymin, bounds_map$ymax)) +
    theme_void()

# show the plot
plot_census
Figure 3: Water systems (filled polygons) and boundaries of census units (red) that will be used to estimate water system demographics, along with county boundaries (grey) for reference.

6 Compute Water System Demographics

Now we can perform the calculations to estimate demographic characteristics for our target areas (water system service boundaries in the Sacramento County area) from our source demographic dataset (the census data we obtained above). For this example, we’ll use the 2022 5-year ACS data that we retrieved above (which is saved in the census_data_acs variable) as our source of demographic data, and we’ll estimate the following for each water system’s service area:

  • Population of each racial/ethnic group (using the racial/ethnic categories defined in the census dataset), and each racial/ethnic group’s portion of the total service area population
  • Socio-economic variables like poverty rate, median household income, income distributions, and per capita income

There are multiple ways this estimation can be done, but one of the most simple and straightforward is using an areal interpolation (essentially an area weighted average). The major simplifying assumption of this approach is that the population or other characteristic(s) of interest are evenly distributed within each unit in the source data – e.g., in this case we’re assuming that population (including the total population and the population of each racial/ethic group) and household income is evenly distributed within each census block group.

6.1 Prepare Census Data

To calculate demographics for the target areas, we need to prepare the census data. First, we need to transform the 2022 5-year ACS dataset into the common projected coordinate reference system defined above.

# transform to common coordinate reference system
census_data_acs <- census_data_acs %>% 
    st_transform(crs_projected)

We can then apply some transformations to the 2022 5-year ACS dataset prior to performing the areal interpolation to simplify the results and speed the computation.

This isn’t strictly necessary, but we can simplify the census dataset by filtering for census units that overlap with one of the water systems in our dataset.

census_data_filter <- census_data_acs %>% 
    st_filter(water_systems_sac, 
              .predicate = st_intersects)

We can also drop census units with zero population, since they won’t contribute anything to our calculations.

## drop census units with zero population
census_data_filter <- census_data_filter %>% 
    filter(population_total > 0)

You may also want to transform the census data in other ways. For example, we can combine the ‘other’ and ‘multiple’ racial/ethnic groupings into one ‘other or multiple’ racial/ethnic group.

## combine other and multiple
census_data_filter <- census_data_filter %>% 
    mutate('population_other_or_multiple' = population_other + population_multiple, 
           .after = population_pacific_islander) %>% 
    select(-c(population_other, population_multiple))

Here’s a view of the contents and structure of the transformed census dataset:

glimpse(census_data_filter)
Rows: 1,049
Columns: 43
$ GEOID                                       <chr> "060670081451", "060670082…
$ NAME                                        <chr> "Block Group 1; Census Tra…
$ population_total                            <dbl> 1768, 1881, 1098, 2748, 17…
$ population_hispanic_or_latino               <dbl> 38, 327, 376, 782, 366, 17…
$ population_white                            <dbl> 1627, 1337, 293, 1817, 840…
$ population_black_or_african_american        <dbl> 0, 1, 272, 26, 351, 111, 1…
$ population_native_american_or_alaska_native <dbl> 41, 0, 0, 26, 0, 0, 0, 31,…
$ population_asian                            <dbl> 45, 0, 105, 58, 144, 61, 0…
$ population_pacific_islander                 <dbl> 0, 98, 0, 0, 27, 13, 0, 0,…
$ population_other_or_multiple                <dbl> 17, 118, 52, 39, 15, 37, 1…
$ poverty_total_assessed                      <dbl> 1768, 1847, 1098, 2748, 17…
$ poverty_below_count                         <dbl> 101, 328, 272, 116, 127, 3…
$ poverty_above_count                         <dbl> 1667, 1519, 826, 2632, 161…
$ household_count                             <dbl> 680, 718, 405, 905, 732, 6…
$ average_household_size                      <dbl> 2.59, 2.62, 2.71, 2.97, 2.…
$ median_household_income                     <dbl> 123500, 66768, 56216, 1172…
$ households_income_below_10k                 <dbl> 18, 47, 10, 22, 6, 107, 10…
$ households_income_10k_15k                   <dbl> 0, 0, 24, 0, 15, 231, 10, …
$ households_income_15k_20k                   <dbl> 0, 13, 18, 0, 51, 12, 12, …
$ households_income_20k_25k                   <dbl> 0, 12, 0, 13, 10, 12, 0, 6…
$ households_income_25k_30k                   <dbl> 30, 74, 35, 41, 0, 9, 0, 3…
$ households_income_30k_35k                   <dbl> 0, 10, 16, 0, 102, 47, 15,…
$ households_income_35k_40k                   <dbl> 0, 24, 0, 0, 29, 6, 0, 0, …
$ households_income_40k_45k                   <dbl> 19, 17, 0, 13, 21, 8, 0, 0…
$ households_income_45k_50k                   <dbl> 15, 15, 47, 56, 91, 0, 0, …
$ households_income_50k_60k                   <dbl> 76, 28, 90, 53, 70, 17, 18…
$ households_income_60k_75k                   <dbl> 126, 156, 61, 140, 67, 20,…
$ households_income_75k_100k                  <dbl> 15, 71, 74, 40, 74, 27, 11…
$ households_income_100k_125k                 <dbl> 53, 125, 0, 77, 89, 52, 13…
$ households_income_125k_150k                 <dbl> 101, 10, 22, 171, 89, 0, 1…
$ households_income_150k_200k                 <dbl> 173, 30, 0, 180, 0, 0, 150…
$ households_income_above_200k                <dbl> 54, 86, 8, 99, 18, 116, 18…
$ households_mortgage_total                   <dbl> 251, 452, 190, 641, 248, 1…
$ households_mortgage_over30pct               <dbl> 88, 223, 97, 195, 87, 0, 3…
$ households_mortgage_over50pct               <dbl> 68, 38, 13, 76, 18, 0, 33,…
$ households_no_mortgage_total                <dbl> 324, 226, 0, 110, 98, 0, 6…
$ households_no_mortgage_over30pct            <dbl> 18, 126, 0, 0, 37, 0, 32, …
$ households_no_mortgage_over50pct            <dbl> 18, 91, 0, 0, 21, 0, 10, 0…
$ households_rent_total                       <dbl> 105, 40, 215, 154, 386, 65…
$ households_rent_over30pct                   <dbl> 90, 30, 110, 0, 268, 345, …
$ households_rent_over50pct                   <dbl> 13, 9, 64, 0, 141, 198, 0,…
$ per_capita_income                           <dbl> 45172, 34343, 24410, 39796…
$ geometry                                    <MULTIPOLYGON [m]> MULTIPOLYGON …

6.2 Areal Interpolation

Caution

Areal interpolation, based on area weighted averaging, is possibly most useful for estimating count data for overlapping polygons - like population size or number of households - since we generally have no other information about how population density varies within the source polygons (unless significantly more effort is invested, such as looking at aerial imagery data).

However, for intensive variables that are associated with the estimated count data - per capita or median household income - it may be be more appropriate to use the corresponding estimated count data (rather than area) as a weighting factor. For example, for per capita income, we can use the estimated population counts to produce a population weighted average per capia income (rather than an area weighted average per capita income).

Tip

In addition, there may be cases where we can use more granular block-level population data from the decennial census to estimate population densities and distributions within larger census units, like block groups and tracts.
See Section 7.1 for more information.

There are a couple of ways to implement the areal interpolation method. The example below uses the aw_interpolate function from the areal R package. The sf package’s st_interpolate_aw function provides similar functionality. It’s also possible to ‘manually’ implement the process using lower level functions from the sf package, which can be useful for even more control, but is more complicated to implement (see Section 6.6 below for examples of ‘manual’ calculations that demonstrate how the interpolation function works and provide a check on the results).

Note that there are some settings that you may need to modify in the aw_interpolate function depending on the type of analysis you’re doing. In particular, for more information about extensive versus intensive interpolations, see this section of the documenation. For more information about the weight argument – which can be either sum or total – see this section of the documentation.

Caution

Using interpolated results for the variables in the intensive list below may not be the best approach. For variables like average houshold size or per capita income, it may be more appropriate to use a separate process that first calculates relevant counts in each overlapping census unit (e.g., number of households or number of people, respectively), then weight the results using those counts (see section [TO BE ADDED] below). For median household income, it may be more appropriate to use the counts in each income bracket to estimate a median income and/or present the income distribution rather than a single value.

water_systems_sac_demographics <- water_systems_sac %>% 
    aw_interpolate(tid = WATER_SY_1, 
                   source = census_data_filter, 
                   sid = GEOID, 
                   weight = 'total',
                   output = 'sf', 
                   extensive = c(
                       'population_total', 
                       'population_hispanic_or_latino',
                       'population_white', 
                       'population_black_or_african_american',
                       'population_native_american_or_alaska_native', 
                       'population_asian', 
                       'population_pacific_islander',
                       'population_other_or_multiple',
                       'poverty_total_assessed', 
                       'poverty_below_count', 
                       'poverty_above_count',
                       'household_count', 
                       'households_income_below_10k', 
                       'households_income_10k_15k', 
                       'households_income_15k_20k', 
                       'households_income_20k_25k', 
                       'households_income_25k_30k', 
                       'households_income_30k_35k', 
                       'households_income_35k_40k', 
                       'households_income_40k_45k', 
                       'households_income_45k_50k', 
                       'households_income_50k_60k', 
                       'households_income_60k_75k', 
                       'households_income_75k_100k', 
                       'households_income_100k_125k', 
                       'households_income_125k_150k', 
                       'households_income_150k_200k', 
                       'households_income_above_200k', 
                       'households_mortgage_total', 
                       'households_mortgage_over30pct', 
                       'households_mortgage_over50pct', 
                       'households_no_mortgage_total', 
                       'households_no_mortgage_over30pct', 
                       'households_no_mortgage_over50pct', 
                       'households_rent_total', 
                       'households_rent_over30pct', 
                       'households_rent_over50pct'
                   )#, 
                   # intensive = c(
                   #     'median_household_income', 
                   #     'average_household_size', 
                   #     'per_capita_income'
                   # )
    )

We’ve now got a dataset with the selected census data estimated for each of the target geographic features (water system service areas). Here’s a view of the contents and structure of the dataset:

glimpse(water_systems_sac_demographics)
Rows: 62
Columns: 49
$ WATER_SY_1                                  <chr> "HOOD WATER MAINTENCE DIST…
$ WATER_SYST                                  <chr> "CA3400101", "CA3400179", …
$ GLOBALID                                    <chr> "{36268DB3-9DB2-4305-A85A-…
$ BOUNDARY_T                                  <chr> "Water Service Area", "Wat…
$ OWNER_TYPE                                  <chr> "L", "P", "P", "P", "P", "…
$ COUNTY                                      <chr> "SACRAMENTO", "SACRAMENTO"…
$ REGULATING                                  <chr> "LPA64 - SACRAMENTO COUNTY…
$ FEDERAL_CL                                  <chr> "COMMUNITY", "COMMUNITY", …
$ STATE_CLAS                                  <chr> "COMMUNITY", "COMMUNITY", …
$ SERVICE_CO                                  <dbl> 82, 199, 34, 64, 128, 83, …
$ POPULATION                                  <dbl> 100, 700, 40, 150, 256, 15…
$ household_count                             <dbl> 0.41121610, 82.16845104, 0…
$ households_income_100k_125k                 <dbl> 0.052575575, 3.423685460, …
$ households_income_10k_15k                   <dbl> 0.000000000, 1.943172829, …
$ households_income_125k_150k                 <dbl> 0.00000000, 0.00000000, 0.…
$ households_income_150k_200k                 <dbl> 0.000000000, 2.961025263, …
$ households_income_15k_20k                   <dbl> 0.000000000, 3.423685460, …
$ households_income_20k_25k                   <dbl> 0.000000000, 6.754838880, …
$ households_income_25k_30k                   <dbl> 0.0000000000, 11.381440853…
$ households_income_30k_35k                   <dbl> 0.0000000000, 1.9431728286…
$ households_income_35k_40k                   <dbl> 0.0694748669, 1.5730446707…
$ households_income_40k_45k                   <dbl> 0.037553982, 1.387980592, …
$ households_income_45k_50k                   <dbl> 0.018776991, 3.146089341, …
$ households_income_50k_60k                   <dbl> 0.046942478, 1.295448552, …
$ households_income_60k_75k                   <dbl> 0.050697876, 15.452850589,…
$ households_income_75k_100k                  <dbl> 0.065719469, 19.709324404,…
$ households_income_above_200k                <dbl> 0.013143894, 0.000000000, …
$ households_income_below_10k                 <dbl> 0.056330973, 7.772691314, …
$ households_mortgage_over30pct               <dbl> 0.054453274, 3.793813618, …
$ households_mortgage_over50pct               <dbl> 0.000000000, 1.573044671, …
$ households_mortgage_total                   <dbl> 0.054453274, 9.345735985, …
$ households_no_mortgage_over30pct            <dbl> 0.056330973, 0.832788355, …
$ households_no_mortgage_over50pct            <dbl> 0.0563309732, 0.8327883551…
$ households_no_mortgage_total                <dbl> 0.16523752, 24.52099046, 0…
$ households_rent_over30pct                   <dbl> 0.076985663, 33.866726441,…
$ households_rent_over50pct                   <dbl> 0.0488201768, 26.649227363…
$ households_rent_total                       <dbl> 0.191525309, 48.301724596,…
$ population_asian                            <dbl> 0.000000000, 42.842334268,…
$ population_black_or_african_american        <dbl> 0.000000000, 64.679895580,…
$ population_hispanic_or_latino               <dbl> 0.805532917, 51.910474135,…
$ population_native_american_or_alaska_native <dbl> 0.0000000, 0.0000000, 0.00…
$ population_other_or_multiple                <dbl> 0.024410088, 1.665576710, …
$ population_pacific_islander                 <dbl> 0.0000000, 0.0000000, 0.00…
$ population_total                            <dbl> 1.16417345, 269.36076686, …
$ population_white                            <dbl> 0.33423044, 108.26248616, …
$ poverty_above_count                         <dbl> 0.96138194, 168.40831181, …
$ poverty_below_count                         <dbl> 0.20279150, 100.95245505, …
$ poverty_total_assessed                      <dbl> 1.16417345, 269.36076686, …
$ geometry                                    <MULTIPOLYGON [m]> MULTIPOLYGON …

Table 1 provides a complete view of the dataset:

water_systems_sac_demographics %>%
    kable(caption = 'A Caption') %>% 
    scroll_box(height = "400px")
Table 1: Water System Demographics
A Caption
WATER_SY_1 WATER_SYST GLOBALID BOUNDARY_T OWNER_TYPE COUNTY REGULATING FEDERAL_CL STATE_CLAS SERVICE_CO POPULATION household_count households_income_100k_125k households_income_10k_15k households_income_125k_150k households_income_150k_200k households_income_15k_20k households_income_20k_25k households_income_25k_30k households_income_30k_35k households_income_35k_40k households_income_40k_45k households_income_45k_50k households_income_50k_60k households_income_60k_75k households_income_75k_100k households_income_above_200k households_income_below_10k households_mortgage_over30pct households_mortgage_over50pct households_mortgage_total households_no_mortgage_over30pct households_no_mortgage_over50pct households_no_mortgage_total households_rent_over30pct households_rent_over50pct households_rent_total population_asian population_black_or_african_american population_hispanic_or_latino population_native_american_or_alaska_native population_other_or_multiple population_pacific_islander population_total population_white poverty_above_count poverty_below_count poverty_total_assessed geometry
HOOD WATER MAINTENCE DIST [SWS] CA3400101 {36268DB3-9DB2-4305-A85A-2C3A85F20F34} Water Service Area L SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 82 100 0.4112161 0.0525756 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0694749 0.0375540 0.0187770 0.0469425 0.0506979 0.0657195 0.0131439 0.0563310 0.0544533 0.0000000 0.0544533 0.0563310 0.0563310 0.1652375 0.0769857 0.0488202 0.1915253 0.0000000 0.0000000 0.8055329 0.0000000 0.0244101 0.0000000 1.1641734 0.3342304 0.9613819 0.2027915 1.1641734 MULTIPOLYGON (((-132703 403...
MC CLELLAN MHP CA3400179 {E3BF3C3E-D516-45B2-A5AD-6900F8D16715} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 199 700 82.1684510 3.4236855 1.9431728 0.0000000 2.9610253 3.4236855 6.7548389 11.3814409 1.9431728 1.5730447 1.3879806 3.1460893 1.2954486 15.4528506 19.7093244 0.0000000 7.7726913 3.7938136 1.5730447 9.3457360 0.8327884 0.8327884 24.5209905 33.8667264 26.6492274 48.3017246 42.8423343 64.6798956 51.9104741 0.0000000 1.6655767 0.0000000 269.3607669 108.2624862 168.4083118 100.9524550 269.3607669 MULTIPOLYGON (((-119809.2 7...
MAGNOLIA MUTUAL WATER CA3400130 {BADB48CD-AF05-4135-8FD5-9990BE415405} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 34 40 0.3600789 0.0024719 0.0090638 0.0148316 0.0140076 0.0131837 0.0000000 0.0205995 0.0090638 0.0000000 0.0230714 0.0222474 0.0090638 0.1384285 0.0000000 0.0609745 0.0230714 0.0000000 0.0000000 0.1235969 0.0230714 0.0230714 0.0494387 0.0650943 0.0296632 0.1870433 0.0552066 0.0000000 0.4152855 0.0000000 0.0337831 0.0000000 0.9310964 0.4268212 0.7844281 0.1466683 0.9310964 MULTIPOLYGON (((-137015.5 3...
KORTHS PIRATES LAIR CA3400135 {7A556C0E-57E2-499A-9B87-B5707C837DA8} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 64 150 0.0489835 0.0062708 0.0081639 0.0000000 0.0014198 0.0024847 0.0027213 0.0018931 0.0005916 0.0004733 0.0022480 0.0013015 0.0000000 0.0067441 0.0035495 0.0026030 0.0085189 0.0035495 0.0035495 0.0084005 0.0031946 0.0008282 0.0301710 0.0069807 0.0069807 0.0104119 0.0000000 0.0028396 0.0034312 0.0000000 0.0031946 0.0000000 0.0879099 0.0784445 0.0563192 0.0315908 0.0879099 MULTIPOLYGON (((-137297.1 1...
EL DORADO MOBILE HOME PARK CA3400121 {23B9391F-B6E7-44CE-A0EA-C2EE522857BF} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 128 256 48.2151375 0.0000000 9.7199081 4.3382641 0.0000000 0.0000000 3.6792873 5.6562177 0.7688063 0.0000000 7.5233187 1.4826978 7.2487450 0.4393179 0.9335505 0.8237210 5.6013030 0.0000000 0.0000000 3.1850546 5.3267293 5.3267293 9.6649934 17.1883121 9.6649934 35.3650894 18.5062657 14.6073196 84.0195448 0.0000000 11.4222649 0.0000000 139.4285126 10.8731176 78.8026450 59.7472319 138.5498768 MULTIPOLYGON (((-124533.7 5...
RIVER'S EDGE MARINA & RESORT CA3400107 {F56E068C-AE1B-4C68-A2AF-F5058871E4E2} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 83 150 0.0782305 0.0100150 0.0130384 0.0000000 0.0022676 0.0039682 0.0043461 0.0030234 0.0009448 0.0007559 0.0035903 0.0020786 0.0000000 0.0107709 0.0056689 0.0041572 0.0136053 0.0056689 0.0056689 0.0134163 0.0051020 0.0013227 0.0481854 0.0111488 0.0111488 0.0166287 0.0000000 0.0045351 0.0054799 0.0000000 0.0051020 0.0000000 0.1403991 0.1252821 0.0899462 0.0504530 0.1403991 MULTIPOLYGON (((-141320.7 1...
LAGUNA VILLAGE RV PARK CA3400397 {5184D6CC-8084-494D-BD81-B0009F76F1FD} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 28 32 6.6830099 0.3588648 0.0000000 0.8057530 0.8531502 0.0947945 0.2099020 0.1963600 0.1151076 0.0000000 0.2708413 0.2911544 0.1083365 0.7041875 1.3745198 0.6432482 0.6567902 1.2729543 0.4807434 2.8302919 0.1625048 0.0067710 1.0562812 0.7380426 0.3317806 2.7964368 10.6711486 1.4760853 2.5933058 0.0000000 2.1193334 1.6995294 20.2792449 1.7198425 17.8890701 2.3901748 20.2792449 MULTIPOLYGON (((-122362.2 4...
SPINDRIFT MARINA CA3400169 {3B1EC48B-B696-452E-A769-99EF03DE955E} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 50 100 0.0954742 0.0122225 0.0159124 0.0000000 0.0027674 0.0048429 0.0053041 0.0036898 0.0011531 0.0009225 0.0043817 0.0025368 0.0000000 0.0131450 0.0069184 0.0050735 0.0166042 0.0069184 0.0069184 0.0163736 0.0062266 0.0016143 0.0588066 0.0136062 0.0136062 0.0202940 0.0000000 0.0055347 0.0066878 0.0000000 0.0062266 0.0000000 0.1713463 0.1528972 0.1097723 0.0615740 0.1713463 MULTIPOLYGON (((-140144.2 1...
SAC CITY MOBILE HOME COMMUNITY LP CA3400296 {BBEBB4AF-57F6-4CBA-9746-6EDDFF0BB86B} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 164 350 89.4406295 3.7479883 16.1844949 4.2590776 0.0000000 9.0292445 9.8810600 7.6663397 0.0000000 0.0000000 4.2590776 2.0443572 6.6441611 1.3629048 13.2883221 0.0000000 11.0736018 1.5332679 1.5332679 3.5776252 1.5332679 0.0000000 15.3326793 40.7167818 30.1542694 70.5303250 122.8317979 7.4959766 81.7742899 0.0000000 0.0000000 0.0000000 229.3087378 17.2066735 118.9134465 110.3952913 229.3087378 MULTIPOLYGON (((-124542.8 5...
ORANGE VALE WATER COMPANY CA3410016 {E7FB0496-8E98-4C1C-B073-40B7F2308EE3} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 5684 18005 6595.2837104 900.7356837 111.3937778 625.6077965 677.8935478 60.8572084 93.5577120 225.5184953 57.9795142 273.6232058 119.6327762 180.8290498 371.6355706 751.7849002 989.6690621 765.6465676 388.9188424 1021.3048996 452.6481914 3246.4149049 314.6881475 184.8067075 1686.0642367 693.1235814 304.7507104 1662.8045688 632.9109666 241.1577329 2657.5821267 180.8759821 1281.4642832 85.6664824 17387.1804880 12307.5229140 15384.0773580 1903.9653820 17288.0427400 MULTIPOLYGON (((-104831.8 7...
GOLDEN STATE WATER CO. - CORDOVA CA3410015 {D09864D9-0038-4D96-AA06-F1D0F4207324} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 14798 44928 18022.2724131 2565.3574304 481.6820516 1671.0168964 1948.4422260 309.5110295 496.0689166 480.3416859 437.3376210 389.0523221 469.4236925 597.8111431 1276.1636931 1691.6766283 2652.7212636 2046.7106756 508.9551374 2173.8952361 835.7380588 7379.6730993 364.1246811 201.1308054 3505.8045695 2744.1803381 1410.0874409 7136.7947443 6049.7720444 3982.3063639 9008.5815107 229.0617289 2614.8681494 187.9680300 48114.9170297 26042.3592023 43427.4521762 4408.0063561 47835.4585323 MULTIPOLYGON (((-105024.5 6...
HOLIDAY MOBILE VILLAGE CA3400335 {31419106-A98A-447B-AAF5-674FA6C8D17F} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 115 200 16.1279783 0.5855042 1.0379392 0.4258212 0.0000000 0.0000000 1.1177807 0.3459797 0.8782562 4.6840333 0.5588903 0.3992074 0.0000000 2.4218581 1.8097401 0.0000000 1.8629678 0.3992074 0.0000000 2.4750858 1.1177807 0.7718009 1.9960369 5.7219725 3.8323909 11.6568556 14.9835838 3.2735006 17.8312632 0.0000000 3.0605900 0.0000000 46.1217599 6.9728223 35.8222093 10.2995505 46.1217599 MULTIPOLYGON (((-123885.3 5...
SOUTHWEST TRACT W M D [SWS] CA3400156 {0B3A9348-87E2-475F-B9EB-8A0E7658CA58} Water Service Area L SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 33 150 56.6169348 0.0000000 2.0808674 1.3005421 2.0808674 6.9362248 0.0000000 7.1963332 0.0000000 0.0000000 10.2309316 11.6181765 3.1213012 2.4276787 4.5952489 4.4218433 0.6069197 1.0404337 0.0000000 3.2080040 0.0000000 0.0000000 8.3234697 28.6986300 7.0229276 45.0854611 74.8245248 23.7565699 28.7853328 2.6877871 0.0000000 1.0404337 173.5790252 42.4843768 135.6898973 37.8891279 173.5790252 MULTIPOLYGON (((-125846.9 5...
CARMICHAEL WATER DISTRICT CA3410004 {2E757010-FDE6-4A95-9D60-16E621A3CEAC} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 11704 37897 15937.0599353 1724.3160580 533.5977949 1199.7655014 1678.4193378 512.5932529 471.9441689 397.9273383 607.1599246 521.5633164 683.9909627 540.5514556 996.3263051 1594.7356744 1782.2476094 2121.9683481 569.9528868 1399.3542055 668.5650482 5256.1106375 358.0036122 177.4504952 3146.6518891 4055.8665545 2068.2998480 7534.2974087 3325.6253424 2229.6808268 6192.4682836 68.2012179 2115.7038660 295.2404645 39253.0451443 25026.1251431 33699.9843977 5000.0233004 38700.0076981 MULTIPOLYGON (((-112199 690...
SCWA - ARDEN PARK VISTA CA3410002 {0FF3353C-7B37-44EC-A4B4-AB9A9D8BF79C} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 3043 10035 3303.3321668 464.8463772 36.2252598 207.8772002 416.0024649 48.4429082 77.3408834 64.6262639 37.7691910 17.5275827 48.6809905 161.5983651 138.5712947 186.9749090 253.0854846 1065.0769123 78.6860792 520.3241678 111.8599784 1822.9354385 76.4172240 22.9130304 673.1932014 384.0582803 225.3146454 807.2035269 396.0833955 269.6126776 989.6145807 11.8688948 394.6749078 8.2922534 8085.7219452 6015.5752354 7514.9400515 523.1232757 8038.0633273 MULTIPOLYGON (((-120321.1 6...
SCWA - LAGUNA/VINEYARD CA3410029 {0D088865-F70E-43D5-899E-1B988AB097B9} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 47411 172666 45136.7375015 5322.5294772 665.6645745 5057.0689734 6577.5987020 742.3252838 877.9535408 838.5620300 1336.4151580 850.4024099 788.0623175 752.0385993 2362.8780777 3198.0928072 6037.4843391 8037.9755292 1691.6856820 7231.9926132 2915.5290405 24581.2965388 860.9255708 470.9663263 7878.0360736 6368.0895369 3336.6734065 12677.4048891 50411.1846769 16568.2152204 27501.6390185 245.7524857 10051.7754887 2220.3008068 145495.0217780 38496.1540810 130488.6918979 14709.7353786 145198.4272765 MULTIPOLYGON (((-125203.9 4...
RIO COSUMNES CORRECTIONAL CENTER [SWS] CA3400229 {887BC04D-196C-4104-AF6A-DE128C8105D0} Water Service Area L SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 13 2800 1.2918032 0.6297541 0.0000000 0.2422131 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.3068033 0.0000000 0.0000000 0.0000000 0.1130328 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.8719672 0.0000000 0.0000000 0.1130328 0.3068033 0.0000000 0.3068033 1.0011475 3.7462292 5.7323766 0.6620491 2.3736884 0.4036885 22.2674574 8.3482781 4.4567210 0.0000000 4.4567210 MULTIPOLYGON (((-124028.8 3...
SCWA MATHER-SUNRISE CA3410704 {4E3FC0F8-4DB3-4B03-AAEB-C965EE668712} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 6921 22839 5503.4347766 644.6310835 34.5914763 754.6721725 1002.5876562 96.5328507 57.1333078 68.4852856 38.5727314 11.5056903 19.8169793 35.6752369 188.7925174 320.4496478 533.0655801 1469.0347467 227.8878142 881.1934264 266.4397612 3755.5193696 60.4771366 43.0746683 855.3673715 318.0997475 166.9204055 892.5480355 4506.7663439 1552.9032678 2708.2807580 22.6098670 1180.2420790 163.6341130 18248.9313856 8114.4949570 17205.7757805 1005.1926521 18210.9684327 MULTIPOLYGON (((-108416.1 5...
TUNNEL TRAILER PARK CA3400192 {896615F1-429B-4829-8D45-45AF249034BC} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 21 44 0.0165565 0.0017649 0.0000000 0.0000000 0.0094128 0.0000000 0.0014287 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0026053 0.0000000 0.0013447 0.0000000 0.0000000 0.0026894 0.0000000 0.0076479 0.0006723 0.0000000 0.0056309 0.0000000 0.0000000 0.0032777 0.0022692 0.0000000 0.0242885 0.0000000 0.0052107 0.0000000 0.0488291 0.0170608 0.0488291 0.0000000 0.0488291 MULTIPOLYGON (((-136156.2 2...
IMPERIAL MANOR MOBILEHOME COMMUNITY CA3400190 {1F6AA119-33B3-4518-92C8-62843A00AE53} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 186 200 124.3703460 0.0000000 25.9994950 0.0000000 0.0000000 17.5734656 2.8363085 0.0704618 15.5996970 7.4411127 4.5053287 6.1453352 0.9454362 3.7817447 28.8358035 6.3816942 4.2544628 0.0000000 0.0000000 8.9816437 36.8720111 34.0357025 88.8710010 26.5177012 22.0123725 26.5177012 6.1453352 0.9454362 52.2207374 0.0000000 21.0504619 0.0000000 209.4594975 129.0975269 164.4684875 44.9910101 209.4594975 MULTIPOLYGON (((-115157 740...
CALAM - ISLETON CA3410012 {24CB80A8-8A7C-46E9-8413-3346147E7444} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 480 1581 16.2336094 2.9637515 1.2133506 0.9302355 0.4914932 0.4448952 0.6812770 0.7280104 0.3235602 0.9302355 0.7280104 0.1617801 2.1178443 1.1729056 0.7577787 1.4155757 1.1729056 3.7400335 1.1324606 6.1829762 1.8551326 1.6178008 6.5225515 0.8089004 0.6066753 3.5280817 1.5340607 0.0000000 14.1701897 0.0000000 0.7574168 0.0000000 33.6922872 17.2306199 26.6548535 7.0374337 33.6922872 MULTIPOLYGON (((-138559.3 1...
FOLSOM, CITY OF - ASHLAND CA3410030 {C83A0A46-997F-44BF-9441-C2DBC0D706CF} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 1079 3538 1799.7030393 132.3166375 17.2265963 79.8748540 122.5819340 103.5596466 42.9221364 33.7589226 209.0008907 103.1571051 73.6177167 43.3463904 43.3896373 158.0481682 247.7733397 345.3208615 43.8082024 163.9652512 90.3906967 593.7964348 367.6575353 81.6863124 847.4360028 195.9003890 74.3934966 358.4706017 125.1620483 43.1209906 317.7230275 1.0472024 422.7225186 0.6283737 3844.6819382 2934.2777772 3636.5160126 143.3077376 3779.8237502 MULTIPOLYGON (((-100505 774...
LOCKE WATER WORKS CO [SWS] CA3400138 {66BAF16E-A801-4313-B7B8-FF4E564CA9F6} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 44 80 0.4115898 0.0028256 0.0103604 0.0169534 0.0160115 0.0150696 0.0000000 0.0235463 0.0103604 0.0000000 0.0263719 0.0254300 0.0103604 0.1582313 0.0000000 0.0696971 0.0263719 0.0000000 0.0000000 0.1412780 0.0263719 0.0263719 0.0565112 0.0744064 0.0339067 0.2138006 0.0631042 0.0000000 0.4746939 0.0000000 0.0386160 0.0000000 1.0642940 0.4878799 0.8966441 0.1676498 1.0642940 MULTIPOLYGON (((-131976.7 2...
DEL PASO MANOR COUNTY WATER DI CA3410007 {BC88D650-D07A-47DF-A872-CD3F6142791A} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 1796 4520 2221.9390972 170.5870031 45.3809110 120.2825323 346.5586719 53.7173908 66.3032589 21.4396308 51.3430451 66.0596461 237.1084233 40.3903109 157.6807268 278.1739919 165.5702722 231.0331020 170.3101801 325.8336617 188.7334656 921.6068532 111.5401988 67.6595556 571.5015208 508.8525659 114.0279242 728.8307232 119.3773376 390.0212908 686.6403817 14.7405756 382.2746135 31.4497802 5591.9114660 3967.4074865 4970.7949939 620.9055619 5591.7005557 MULTIPOLYGON (((-120274.9 6...
EAST WALNUT GROVE [SWS] CA3400106 {6E5DA14E-1740-4320-A7E4-FD9B48240017} Water Service Area L SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 166 300 1.3439937 0.0092265 0.0338305 0.0553590 0.0522835 0.0492080 0.0000000 0.0768875 0.0338305 0.0000000 0.0861140 0.0830385 0.0338305 0.5166841 0.0000000 0.2275870 0.0861140 0.0000000 0.0000000 0.4613251 0.0861140 0.0861140 0.1845300 0.2429645 0.1107180 0.6981386 0.2060585 0.0000000 1.5500522 0.0000000 0.1260955 0.0000000 3.4753156 1.5931093 2.9278765 0.5474391 3.4753156 MULTIPOLYGON (((-132506.6 2...
FOLSOM STATE PRISON CA3410032 {CFEFFCD1-76A3-4403-A906-D04B910D61C5} Water Service Area S SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 2790 9703 22.5426613 4.1517526 0.0000000 4.0329731 12.1469937 0.1064474 0.0085195 0.0001474 0.0049313 0.0005898 0.0000000 0.0078093 0.2240872 0.1126992 0.2620161 1.3895998 0.0940949 0.9386397 0.1192110 3.1453984 0.1115472 0.0004353 0.4520514 0.0036714 0.0002949 18.9452115 69.8242689 1389.7446286 1256.9364067 56.6870957 76.7652684 33.8547933 3535.5532366 651.7407750 28.1916388 0.6348719 28.8265107 MULTIPOLYGON (((-99838.11 7...
CALAM - ARDEN CA3410045 {FC35B709-C658-4890-B64C-374368BFAC79} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 1185 3908 3823.4030385 227.8237249 258.6358544 148.0773037 62.2606019 239.2704507 167.2117959 318.9373630 189.7774321 141.9916915 236.0923455 206.5761768 440.1718547 393.6199161 534.5491374 57.5818264 200.8255635 84.3191682 45.9095962 264.6683172 8.0957445 3.1275988 132.9715104 2124.1154199 1169.6691535 3425.7632110 1082.1423869 1976.9512017 3432.8439086 70.2029554 1099.6966575 58.7226100 10112.3147972 2391.7550772 6903.8350964 3129.7143646 10033.5494610 MULTIPOLYGON (((-123013.9 6...
EDGEWATER MOBILE HOME PARK CA3400433 {FA333DDB-BCD6-4D29-9D40-664577E929C9} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 22 40 0.0323964 0.0041474 0.0053994 0.0000000 0.0009390 0.0016433 0.0017998 0.0012520 0.0003913 0.0003130 0.0014868 0.0008608 0.0000000 0.0044604 0.0023476 0.0017215 0.0056342 0.0023476 0.0023476 0.0055559 0.0021128 0.0005478 0.0199543 0.0046169 0.0046169 0.0068862 0.0000000 0.0018781 0.0022693 0.0000000 0.0021128 0.0000000 0.0581414 0.0518812 0.0372481 0.0208933 0.0581414 MULTIPOLYGON (((-153715.8 7...
CALAM - LINCOLN OAKS CA3410013 {488DCE2C-6EEA-4377-8984-5833F5D03CDF} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 14390 47487 15621.3809893 1888.7872953 375.3828366 1272.1217031 1555.1540910 308.1458139 622.2810854 488.2818455 616.3732436 585.1829345 628.7492052 645.4504947 1034.6867979 1640.6899168 2442.1704417 778.1108146 739.8124694 2670.6595161 919.4308898 7390.0598679 502.5707184 297.5609445 3331.7506863 2522.8453244 1302.1867347 4899.5704351 2706.1128106 1486.1640154 9056.1812738 142.9928184 2708.1823079 287.6668389 42916.4902280 26529.1901631 38749.4769263 4073.9481050 42823.4250313 MULTIPOLYGON (((-113737.5 7...
VIEIRA'S RESORT, INC CA3400164 {C8E1FF09-C1ED-47D9-BD1C-AE3C754ABA72} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 107 150 2.1367242 0.3992300 0.1686888 0.1293280 0.0000000 0.0618525 0.0843444 0.1012133 0.0449837 0.1293280 0.1012133 0.0224918 0.2755250 0.1630658 0.0955903 0.1968035 0.1630658 0.5004433 0.1574428 0.8040830 0.2530331 0.2249183 0.8659356 0.1124592 0.0843444 0.4667055 0.1968035 0.0000000 1.7937237 0.0000000 0.0674755 0.0000000 4.3296779 2.2716752 3.3512832 0.9783948 4.3296779 MULTIPOLYGON (((-143708.1 1...
FLORIN COUNTY WATER DISTRICT CA3410033 {7D72D48E-DB2F-4E79-B396-70EEB030D102} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 2323 7831 2755.4087157 296.9354278 124.6257543 214.6215268 142.8389081 53.3547129 154.3761991 102.8638213 46.0111239 85.7880801 175.8361672 224.2674437 257.8035909 222.7155372 432.0027291 137.0102004 84.3574930 425.6666406 89.9994530 980.7724658 48.5268687 27.7142782 674.7293649 475.7493760 259.6899077 1099.9068850 2742.5834148 1394.4881155 2963.2330239 6.6336612 430.3204693 865.7716405 9951.0366937 1548.0063685 8549.7113979 1284.8842784 9834.5956763 MULTIPOLYGON (((-119638.3 5...
WESTERNER MOBILE HOME PARK CA3400331 {5DF48C4F-72B2-40C9-B2F7-10F9FF855DCC} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 49 65 9.8864417 1.7859379 0.0000000 0.1093431 0.6925065 0.1093431 0.1093431 0.6651707 0.1366789 0.4373725 0.6104992 0.0000000 2.1504150 0.9111928 0.9476405 0.1731266 1.0478717 1.8679452 0.8565212 3.9090170 0.3280294 0.3280294 0.8565212 3.4260849 1.7312663 5.1209035 9.9411133 8.9752489 5.5764998 0.1731266 1.4487965 0.0000000 31.7003970 5.5856118 23.8276913 7.4262212 31.2539125 MULTIPOLYGON (((-122693.1 4...
EL DORADO WEST MHP CA3400122 {2667CD45-9C2C-41B7-A95B-2F343B570215} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 128 172 51.1665127 0.0000000 10.3148892 4.6038206 0.0000000 0.0000000 3.9045061 6.0024497 0.8158669 0.0000000 7.9838408 1.5734577 7.6924598 0.4662097 0.9906956 0.8741432 5.9441735 0.0000000 0.0000000 3.3800202 5.6527924 5.6527924 10.2566130 18.2404539 10.2566130 37.5298795 19.6390829 15.5014720 89.1626019 0.0000000 12.1214518 0.0000000 147.9632982 11.5386897 83.6263619 63.4045169 147.0308788 MULTIPOLYGON (((-124742.1 5...
TOKAY PARK WATER CO CA3400172 {D2908483-C728-45ED-9A75-BA27D6E66685} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 198 525 172.9103108 13.8638644 1.8971726 3.7737854 10.4172265 2.5212446 20.5379761 0.0041485 0.0064015 12.6022626 13.3274782 10.3961842 17.9662119 27.3715141 36.0110885 0.0027623 2.2109893 37.8735331 11.3805327 80.9724226 0.0051347 0.0011499 43.7650747 32.2708872 12.0942179 48.1728135 239.0565210 36.5633959 213.6839340 0.0000000 28.3202696 0.0132022 651.5003569 133.8630344 538.8538080 112.6465489 651.5003569 MULTIPOLYGON (((-122789.8 5...
LAGUNA DEL SOL INC CA3400181 {F64FE571-B7DD-4F78-BBCF-2057DA131C24} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 112 470 8.9804190 0.3985393 0.8767865 0.3985393 0.7439400 0.9033558 0.4251086 0.3985393 0.0000000 0.2656929 0.0000000 0.0000000 0.0000000 0.0000000 1.9926965 2.4178051 0.1594157 1.7004344 1.7004344 4.8621795 0.0000000 0.0000000 2.5240823 0.3985393 0.3985393 1.5941572 0.3454007 0.0000000 5.1013031 0.1594157 0.2656929 0.0000000 23.6732346 17.8014222 22.1587853 1.5144494 23.6732346 MULTIPOLYGON (((-105025.5 4...
OLYMPIA MOBILODGE CA3410022 {B1E1B46F-9300-473E-B970-1D739E004B14} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 200 450 114.4237404 2.6713714 0.2226143 11.7985569 5.1201285 6.4558141 10.0176426 8.9045712 3.3392142 13.1342426 0.0000000 0.0000000 10.0176426 18.6995996 7.5688856 5.3427427 11.1307140 21.5935853 9.7950284 30.7207708 12.2437855 10.0176426 50.7560561 8.9045712 7.3462713 32.9469136 101.2894979 18.2543710 69.9008842 0.0000000 3.1165999 16.0282282 289.8437939 81.2542126 221.9464382 67.8973557 289.8437939 MULTIPOLYGON (((-123549.9 5...
GOLDEN STATE WATER CO - ARDEN WATER SERV CA3410003 {E2997C83-F848-48AF-8915-B45E6469AC6E} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 1716 5125 2173.3862508 131.7147921 82.2403920 171.7079195 140.8479724 19.2857784 140.6953734 52.8057022 172.6873796 34.4563047 178.9267558 37.1685200 138.6454528 351.1414354 319.0998779 182.5319559 19.4306387 238.5720694 123.1865478 727.7085408 0.2417045 0.2417045 130.6029265 599.3176233 334.9873262 1315.0747835 887.9273434 321.8426915 1705.9940680 0.0911940 742.0066805 10.7864072 6555.7696756 2887.1212910 4827.6115519 1625.5697248 6453.1812768 MULTIPOLYGON (((-120307.3 6...
ELEVEN OAKS MOBILE HOME COMMUNITY CA3400191 {AB99BC88-8951-414B-BA24-E873AF46C168} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 136 262 71.2146352 2.9672765 1.6841299 0.0000000 2.5662932 2.9672765 5.8543563 9.8641893 1.6841299 1.3633432 1.2029499 2.7266865 1.1227533 13.3928424 17.0818888 0.0000000 6.7365195 3.2880631 1.3633432 8.0998628 0.7217700 0.7217700 21.2521152 29.3519780 23.0966384 41.8626572 37.1310541 56.0574662 44.9903269 0.0000000 1.4435399 0.0000000 233.4524808 93.8300936 145.9579234 87.4945574 233.4524808 MULTIPOLYGON (((-119816 721...
CALAM - ANTELOPE CA3410031 {AE6C5C3E-859C-4CD7-B3DF-5913A953F8F9} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 10528 34720 10529.3295307 1500.7495311 184.1450913 1077.3930203 1157.7794652 100.9615090 122.3726286 116.4469685 468.5101697 247.5986494 368.3586872 449.4701379 737.4305999 1076.7061396 1668.6530780 937.3259723 315.4278826 1860.8089818 620.5036265 5544.0872962 184.3698474 106.3231597 1747.2662153 1678.4584065 649.2056543 3237.9760191 2947.3357188 3199.3980847 5245.2397355 112.5516151 2081.7481081 77.2668921 33119.7160488 19456.1758944 29644.8479042 3388.7925699 33033.6404741 MULTIPOLYGON (((-123334.7 8...
CALIFORNIA STATE FAIR CA3410026 {C97F5649-348B-4378-9C32-3B6D3E82725B} Water Service Area S SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 269 650 285.4716540 20.7008685 13.0215140 11.0182042 17.0281337 8.3471244 5.3421596 9.3487793 13.6892840 2.0033099 0.0000000 23.3719483 28.7141079 30.0496478 34.7240374 3.3388498 64.7736852 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 177.2929219 95.4911030 285.4716540 48.4133214 91.1505983 78.1290842 0.0000000 52.4199411 0.0000000 532.2126508 262.0997057 373.9511725 151.9176638 525.8688363 MULTIPOLYGON (((-125658 651...
PLANTATION MOBILE HOME PARK CA3400401 {6BF6AFC4-25D1-4131-BA1A-CE81F4561902} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 44 44 3.3251292 0.1207143 0.2139935 0.0877922 0.0000000 0.0000000 0.2304545 0.0713312 0.1810714 0.9657141 0.1152273 0.0823052 0.0000000 0.4993181 0.3731168 0.0000000 0.3840908 0.0823052 0.0000000 0.5102921 0.2304545 0.1591233 0.4115259 1.1797076 0.7901297 2.4033112 3.0891877 0.6749025 3.6762980 0.0000000 0.6310064 0.0000000 9.5089917 1.4375971 7.3855181 2.1234736 9.5089917 MULTIPOLYGON (((-124338.4 5...
CALAM - PARKWAY CA3410017 {78A7BD82-DB23-4AC1-8736-574511C4CC84} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 14779 48738 17666.7886640 1633.5316867 753.3380936 1531.9788719 1545.6177541 514.1300586 712.7247277 694.3526534 639.9551980 713.2865314 700.4012000 727.1387473 1145.1392905 1918.3765008 2490.3823970 865.4412869 1080.9936661 2718.9202130 1049.2628405 7162.9956077 646.5433097 383.4428179 3418.0266877 3517.2627210 1917.1472603 7085.7663686 19228.1809918 6964.8736569 18664.8061541 20.8369935 3449.3939669 1385.9751800 58635.0073685 8920.9404253 48630.3167965 9803.7863660 58434.1031625 MULTIPOLYGON (((-123335.4 5...
CITRUS HEIGHTS WATER DISTRICT CA3410006 {20EF35DA-A434-4A91-BE3D-7D996B8C6730} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 19940 65911 25632.8367034 2743.5767440 568.7994440 2331.8277629 2533.3929840 445.8866083 769.4115233 665.4069464 867.0779805 841.0558325 723.3234592 1164.6015213 1875.0627674 3057.1645880 3953.9411189 2080.4093464 1011.8980764 3552.5017711 1380.0948194 10344.1670582 554.2501347 285.7944238 4292.6223834 5758.6426763 2620.3849095 10996.0472617 2874.5225437 2092.1397411 12379.8740660 161.9306770 3185.5796728 70.8069763 68912.3666060 48147.5129291 61620.0399314 6961.1604963 68581.2004277 MULTIPOLYGON (((-113645.4 7...
SEQUOIA WATER ASSOC CA3400155 {D4629F0D-8EAD-4402-88C8-D55C4121EA5B} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 18 54 0.0948332 0.0006510 0.0023871 0.0039062 0.0036892 0.0034722 0.0000000 0.0054252 0.0023871 0.0000000 0.0060763 0.0058593 0.0023871 0.0364576 0.0000000 0.0160587 0.0060763 0.0000000 0.0000000 0.0325514 0.0060763 0.0060763 0.0130206 0.0171438 0.0078123 0.0492612 0.0145396 0.0000000 0.1093729 0.0000000 0.0088974 0.0000000 0.2452209 0.1124110 0.2065932 0.0386277 0.2452209 MULTIPOLYGON (((-136917.7 3...
FAIR OAKS WATER DISTRICT CA3410009 {797F9D1A-2D43-4FA9-882A-DAA2A539318A} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 14293 35114 14233.4070807 1447.1879511 332.3588693 1568.3188854 1874.6761780 113.0360901 229.1722624 208.1588999 391.4233194 205.9499753 468.9849244 293.0716923 803.5523705 1064.3255362 2213.6241800 2473.8514603 545.7144862 1871.7864644 844.6722781 7090.3860908 261.1826011 108.3058016 3092.2584650 1843.9238233 768.3349827 4050.7625248 1371.7849776 707.5508033 4654.7423927 93.9869062 2113.1426067 11.7674901 36002.5983189 27049.6231424 32923.4030065 2851.6924166 35775.0954231 MULTIPOLYGON (((-107763.5 6...
RANCHO MARINA CA3400149 {A2E2869F-FE8D-48EF-8762-16238D0B3F9A} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 77 250 0.1521691 0.0194806 0.0253615 0.0000000 0.0044107 0.0077187 0.0084538 0.0058809 0.0018378 0.0014702 0.0069836 0.0040431 0.0000000 0.0209508 0.0110267 0.0080863 0.0264642 0.0110267 0.0110267 0.0260966 0.0099241 0.0025729 0.0937274 0.0216859 0.0216859 0.0323451 0.0000000 0.0088214 0.0106592 0.0000000 0.0099241 0.0000000 0.2730958 0.2436911 0.1749577 0.0981381 0.2730958 MULTIPOLYGON (((-138162.3 1...
FREEPORT MARINA CA3400125 {1A2ECBCF-8086-4599-91D1-7BDC9F543BC8} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 27 42 1.0728029 0.1371620 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.1812498 0.0979729 0.0489864 0.1224661 0.1322634 0.1714525 0.0342905 0.1469593 0.1420607 0.0000000 0.1420607 0.1469593 0.1469593 0.4310806 0.2008444 0.1273647 0.4996616 0.0000000 0.0000000 2.1015181 0.0000000 0.0636824 0.0000000 3.0371590 0.8719586 2.5081055 0.5290535 3.0371590 MULTIPOLYGON (((-130871.1 5...
HAPPY HARBOR (SWS) CA3400128 {95E0CED3-1431-4EF7-B516-D9DE2E6F03C4} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 45 60 0.0216151 0.0027671 0.0036025 0.0000000 0.0006265 0.0010964 0.0012008 0.0008354 0.0002611 0.0002088 0.0009920 0.0005743 0.0000000 0.0029760 0.0015663 0.0011486 0.0037591 0.0015663 0.0015663 0.0037069 0.0014097 0.0003655 0.0133136 0.0030804 0.0030804 0.0045945 0.0000000 0.0012530 0.0015141 0.0000000 0.0014097 0.0000000 0.0387923 0.0346155 0.0248521 0.0139402 0.0387923 MULTIPOLYGON (((-139870.3 1...
FOLSOM, CITY OF - MAIN CA3410014 {6E4D1E97-03EB-48F4-9F64-E74E49CC4CC2} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 21424 68122 22409.3823384 2382.4430031 218.1355460 1746.9283429 4083.1483087 390.0036513 476.8583096 417.5347017 283.0639620 329.3286579 373.3616549 451.4793379 670.3668140 1180.5443541 2255.4207366 6343.7663048 806.9986528 2727.7080877 1178.6318783 11490.6508104 237.1898408 146.3657554 3590.2477618 3009.7032962 1320.8580528 7328.4837662 12934.4170968 1693.2864940 8432.6283268 105.2228615 3897.3944960 176.8717260 62461.8523292 35222.0313281 58709.8582238 3405.2750719 62115.1332958 MULTIPOLYGON (((-107067.9 6...
RANCHO MURIETA COMMUNITY SERVI CA3410005 {2C72EE8A-A081-49FB-8EEA-808BF54CDB58} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 2726 5744 1402.0967904 118.3930766 42.3473557 204.1395173 240.7495319 0.0000000 5.9102352 5.3262089 18.2285332 73.7524494 27.3517589 74.6522384 44.1562938 81.2814649 87.8793345 318.6065856 59.3222060 205.1382026 103.3669845 1029.1069175 63.0813034 57.1710682 269.5909676 40.5131013 39.9972505 103.3989053 187.8473482 120.1082782 661.4100294 6.9226010 105.7357819 0.0000000 3238.7025585 2156.6785197 3039.9096847 198.6877215 3238.5974062 MULTIPOLYGON (((-95334.2 52...
CAL AM FRUITRIDGE VISTA CA3410023 {501904B9-FD46-4D56-89DE-D87AD8F5FD70} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 4667 15385 6899.9140996 458.8445334 339.2099413 235.1486797 287.1473267 520.9996164 262.7374008 367.1883343 301.6105218 359.1749480 354.9332453 565.0609345 692.3060889 876.2377458 783.8075573 141.4321445 354.0750809 745.4935970 344.8495494 1619.8296502 94.9132221 57.5416225 1236.1776014 2130.6340062 1058.7419859 4043.9068480 4075.1131280 2663.3011157 10938.9170749 121.1433988 1060.0683027 240.0083338 22602.6630640 3504.1117102 16546.1806283 6009.7140860 22555.8947143 MULTIPOLYGON (((-125839.3 5...
B & W RESORT MARINA CA3400103 {CEC00BE2-7FBA-4B81-BE20-7D326EB6EBF6} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 37 100 0.0422931 0.0079021 0.0033389 0.0025598 0.0000000 0.0012243 0.0016695 0.0020034 0.0008904 0.0025598 0.0020034 0.0004452 0.0054536 0.0032276 0.0018921 0.0038954 0.0032276 0.0099055 0.0031163 0.0159156 0.0050084 0.0044519 0.0171398 0.0022260 0.0016695 0.0092377 0.0038954 0.0000000 0.0355040 0.0000000 0.0013356 0.0000000 0.0856992 0.0449643 0.0663334 0.0193658 0.0856992 MULTIPOLYGON (((-138335.4 1...
CALAM - SUBURBAN ROSEMONT CA3410010 {C7B2A772-B03D-4109-86B0-996D6A191F5F} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 16238 53563 21045.1018353 2594.5943353 612.2587703 1593.9305166 1670.7351745 472.4194316 743.9075600 652.7686692 567.7706604 581.9992968 873.7032718 628.3855992 1288.6020796 2508.0974882 3438.3892872 1661.0922839 1156.4474108 2261.5294332 730.4776261 8262.3220973 438.6402189 271.0385123 3424.8520826 4520.7820567 2319.7944294 9357.9276554 6905.2987809 7724.7725462 13791.4166440 90.8097107 3942.4070344 380.2805737 57896.7439217 25061.7586318 49286.9627735 8374.3720099 57661.3347833 MULTIPOLYGON (((-120054.6 5...
SAN JUAN WATER DISTRICT CA3410021 {5F6CA8E6-CCFE-44C8-978B-6012BDE0AD70} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 10672 29641 10750.1495842 853.9948037 168.3039321 876.1496099 1032.1228618 100.4248825 274.9765606 127.7463448 159.7577616 110.8699984 133.2796406 126.6536145 472.3792109 684.0889993 984.1402476 4256.4919483 388.7691676 1754.1276808 723.8699666 6209.8360395 527.7347496 356.6210547 2882.6803563 726.1057528 339.1581882 1657.6331884 2761.9691642 831.2463017 3408.5773626 286.8715750 1467.3490957 17.2561800 30122.4115704 21349.1418911 28296.8723978 1717.5297944 30014.4021922 MULTIPOLYGON (((-100141.1 8...
ELK GROVE WATER SERVICE CA3410008 {E33EFAB9-03BB-4AA6-B34C-E1B2B887AC40} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 12882 42540 13238.9100963 1469.7831520 202.1735678 1385.9378896 1906.7785552 252.8846375 223.5107451 327.6343327 101.5057735 344.9642849 292.3949973 244.6466708 667.2277312 1116.8947162 1440.6413362 2832.0848266 429.8468798 1902.8226201 627.9585906 7551.9501142 282.8809066 112.6581718 2860.9103294 1594.5949046 863.8740389 2826.0496528 8938.9252240 3209.2685277 7656.1027968 69.7369659 2834.6937958 387.7772159 42646.7296258 19550.2250997 38993.5138540 3264.0175810 42257.5314350 MULTIPOLYGON (((-113074.8 4...
DELTA CROSSING MHP CA3400150 {178C1128-CAD8-4118-8692-500FC1384637} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 22 30 0.0565275 0.0072273 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0095503 0.0051623 0.0025812 0.0064529 0.0069691 0.0090341 0.0018068 0.0077435 0.0074854 0.0000000 0.0074854 0.0077435 0.0077435 0.0227142 0.0105828 0.0067110 0.0263279 0.0000000 0.0000000 0.1107319 0.0000000 0.0033555 0.0000000 0.1600321 0.0459447 0.1321555 0.0278766 0.1600321 MULTIPOLYGON (((-132728.4 4...
GALT, CITY OF CA3410011 {1EB5C880-698B-463D-916D-27EB4115BE84} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 7471 26536 6987.5357777 1096.3084285 168.1832539 504.4991186 788.6043595 243.2690568 210.1360339 140.5426889 341.9418512 160.7063475 347.3758689 152.2076332 550.4693882 686.5717245 807.1560200 650.1046848 139.4593192 907.4138072 523.4602820 3724.2608083 108.8264389 44.2709236 1454.3735494 906.4809387 414.1512468 1808.9014201 871.8607749 519.8596854 9314.4508950 22.4436804 789.0936920 20.0053925 21489.7769024 9952.0627822 19937.1926609 1404.1088571 21341.3015180 MULTIPOLYGON (((-115624.6 2...
LINCOLN CHAN-HOME RANCH CA3400137 {8E59F56D-9D04-48D4-B6E4-F0584DA465D8} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 19 33 1.5038756 0.0103241 0.0378550 0.0619445 0.0585032 0.0550618 0.0000000 0.0860341 0.0378550 0.0000000 0.0963582 0.0929168 0.0378550 0.5781490 0.0000000 0.2546609 0.0963582 0.0000000 0.0000000 0.5162044 0.0963582 0.0963582 0.2064818 0.2718677 0.1238891 0.7811894 0.2305713 0.0000000 1.7344469 0.0000000 0.1410959 0.0000000 3.8887400 1.7826260 3.2761774 0.6125626 3.8887400 MULTIPOLYGON (((-137040.3 3...
RIO LINDA/ELVERTA COMMUNITY WATER DIST CA3410018 {03B163CA-7B3B-4A23-8E31-77AF963C2BF3} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 4621 14381 3761.6033554 491.6445232 156.4692332 430.8331149 415.6196965 66.8600922 168.7735897 56.2689625 112.6547781 116.4832566 114.0660929 118.0282656 173.1294602 297.2131196 606.9213690 259.3021303 177.3356710 572.5923869 157.1920756 1918.2923459 114.4708846 47.4533275 772.9578664 519.2560180 340.4159673 1070.3531430 764.5025291 336.6403506 2585.2987230 16.7415040 512.2151088 21.2278122 11831.4050738 7594.7790460 10210.2384197 1618.8821031 11829.1205228 MULTIPOLYGON (((-125758.1 7...
SACRAMENTO SUBURBAN WATER DISTRICT CA3410001 {91C3BEAC-ACF7-4419-A57D-679912168873} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 46573 184385 72505.3459272 6479.7222905 3001.4247113 4341.8155148 5488.0234146 3068.6350750 2883.7080242 3205.4749351 3100.4035000 3336.6907659 2893.3245566 2342.0597477 5541.2780373 6791.8950710 10036.8358151 6176.8449416 3817.2095264 7204.1308118 2837.1578291 23467.3263083 2086.9756387 1160.3317865 12037.3741485 21072.3795945 10273.7781043 37000.6454705 20601.5276174 17683.8035710 43046.5862171 834.1766712 12463.5266871 623.5010804 193125.5452987 97872.4234544 157585.1487857 33398.9027882 190984.0515740 MULTIPOLYGON (((-115313.2 7...
CALAM - WALNUT GROVE CA3410047 {B1588BFA-E492-4087-BF44-72049EB4D5B5} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 197 651 4.6150009 0.0316819 0.1161671 0.1900916 0.1795309 0.1689703 0.0000000 0.2640161 0.1161671 0.0000000 0.2956980 0.2851374 0.1161671 1.7741880 0.0000000 0.7814876 0.2956980 0.0000000 0.0000000 1.5840964 0.2956980 0.2956980 0.6336386 0.8342908 0.3801831 2.3972659 0.7075631 0.0000000 5.3225640 0.0000000 0.4329864 0.0000000 11.9335264 5.4704130 10.0537320 1.8797944 11.9335264 MULTIPOLYGON (((-132035.3 2...
CITY OF SACRAMENTO MAIN CA3410020 {8DB287D6-CBB3-484C-802F-FFC909F0959F} Water Service Area S SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 142794 510931 194000.0141638 20453.4979307 9400.8965823 15079.7381061 17439.0633155 6216.6682096 6406.5976684 5803.8609561 6254.8170189 6278.4908829 6139.2199311 6728.5413058 13349.2772832 17395.8895949 26982.4616746 20530.7727300 9540.2209738 21768.6901173 8217.1719086 67434.8107773 3476.4013912 1804.5854572 29856.8566750 47509.5512539 24524.2427584 96708.3467115 98585.0823322 62059.7559565 151210.5537799 1249.2624799 34334.3020476 9241.7219319 516189.1113701 159508.4328420 431797.3527101 77003.0770055 508800.4297156 MULTIPOLYGON (((-128741.8 5...


6.3 Clean & Format Results

We could stop here, and save the dataset containing the results to an output file (as is done in Section 6.5 ). But, it may be useful to do some additional computations and re-formatting before saving the dataset. For example, in this case it may be useful to calculate the racial/ethnic breakdown of each system’s population as percentages of the total population (in addition to the total counts derived above).

# We can start by renaming the fields that start with population_ and median_household_income to indicate that they are estimates.

# water_systems_sac_demographics <- water_systems_sac_demographics %>%
#     rename_with(.fn = ~ str_replace(.,
#                                     pattern = 'population_',
#                                     replacement = 'population_')) # %>%
#     rename_with(.fn = ~ str_replace(., 
#                                     pattern = 'median_household_income', 
#                                     replacement = 'median_household_income'))
# Then add columns with each racial/ethnic group's estimated percent of the total population within each water system's service area:

water_systems_sac_demographics <- water_systems_sac_demographics %>% 
    mutate(
        across(
            .cols = starts_with('population_'),
            .fns = ~ round(.x / population_total * 100, 2),
            .names = "{str_replace(.col, 'population_', 'percent_')}"
        ), 
        .after = population_white) 

We can also calculate the estimated poverty rate for each water system’s service area.

water_systems_sac_demographics <- water_systems_sac_demographics %>% 
    mutate(poverty_rate_percent = 
               round(100 * poverty_below_count / poverty_total_assessed,
                     2),
           .before = poverty_above_count)

Then format the data, rounding the estimated values to appropriate levels of precision:

water_systems_sac_demographics <- water_systems_sac_demographics %>% 
    mutate(
        across(
            .cols = starts_with('population_'),
            .fns = ~ round(.x, 0)
        )) # %>% 
    # mutate(median_household_income = round(median_household_income, digits = 0))

Finally, just as a check, add a column (which we’ll call population_percent_difference) to compute the difference between the estimated total population (in the population_total field) and the total population listed in the POPULATION field (the reported value from the water system dataset).

water_systems_sac_demographics <- water_systems_sac_demographics %>% 
    mutate(population_percent_difference = 
               round((population_total - POPULATION) / POPULATION * 100, 2))

# rearrange fields to make order more logical
water_systems_sac_demographics <- water_systems_sac_demographics %>% 
    relocate(population_total, .after = 'POPULATION') %>% 
    relocate(population_percent_difference, .after = 'population_total') %>% 
    # relocate(median_household_income, geometry, .after = last_col()) %>% 
    select(-percent_total) # drop the percent_total field - it's always just "1"

Here’s a view of the contents and structure of the re-formatted dataset:

glimpse(water_systems_sac_demographics)
Rows: 62
Columns: 58
$ WATER_SY_1                                  <chr> "HOOD WATER MAINTENCE DIST…
$ WATER_SYST                                  <chr> "CA3400101", "CA3400179", …
$ GLOBALID                                    <chr> "{36268DB3-9DB2-4305-A85A-…
$ BOUNDARY_T                                  <chr> "Water Service Area", "Wat…
$ OWNER_TYPE                                  <chr> "L", "P", "P", "P", "P", "…
$ COUNTY                                      <chr> "SACRAMENTO", "SACRAMENTO"…
$ REGULATING                                  <chr> "LPA64 - SACRAMENTO COUNTY…
$ FEDERAL_CL                                  <chr> "COMMUNITY", "COMMUNITY", …
$ STATE_CLAS                                  <chr> "COMMUNITY", "COMMUNITY", …
$ SERVICE_CO                                  <dbl> 82, 199, 34, 64, 128, 83, …
$ POPULATION                                  <dbl> 100, 700, 40, 150, 256, 15…
$ population_total                            <dbl> 1, 269, 1, 0, 139, 0, 20, …
$ population_percent_difference               <dbl> -99.00, -61.57, -97.50, -1…
$ household_count                             <dbl> 0.41121610, 82.16845104, 0…
$ households_income_100k_125k                 <dbl> 0.052575575, 3.423685460, …
$ households_income_10k_15k                   <dbl> 0.000000000, 1.943172829, …
$ households_income_125k_150k                 <dbl> 0.00000000, 0.00000000, 0.…
$ households_income_150k_200k                 <dbl> 0.000000000, 2.961025263, …
$ households_income_15k_20k                   <dbl> 0.000000000, 3.423685460, …
$ households_income_20k_25k                   <dbl> 0.000000000, 6.754838880, …
$ households_income_25k_30k                   <dbl> 0.0000000000, 11.381440853…
$ households_income_30k_35k                   <dbl> 0.0000000000, 1.9431728286…
$ households_income_35k_40k                   <dbl> 0.0694748669, 1.5730446707…
$ households_income_40k_45k                   <dbl> 0.037553982, 1.387980592, …
$ households_income_45k_50k                   <dbl> 0.018776991, 3.146089341, …
$ households_income_50k_60k                   <dbl> 0.046942478, 1.295448552, …
$ households_income_60k_75k                   <dbl> 0.050697876, 15.452850589,…
$ households_income_75k_100k                  <dbl> 0.065719469, 19.709324404,…
$ households_income_above_200k                <dbl> 0.013143894, 0.000000000, …
$ households_income_below_10k                 <dbl> 0.056330973, 7.772691314, …
$ households_mortgage_over30pct               <dbl> 0.054453274, 3.793813618, …
$ households_mortgage_over50pct               <dbl> 0.000000000, 1.573044671, …
$ households_mortgage_total                   <dbl> 0.054453274, 9.345735985, …
$ households_no_mortgage_over30pct            <dbl> 0.056330973, 0.832788355, …
$ households_no_mortgage_over50pct            <dbl> 0.0563309732, 0.8327883551…
$ households_no_mortgage_total                <dbl> 0.16523752, 24.52099046, 0…
$ households_rent_over30pct                   <dbl> 0.076985663, 33.866726441,…
$ households_rent_over50pct                   <dbl> 0.0488201768, 26.649227363…
$ households_rent_total                       <dbl> 0.191525309, 48.301724596,…
$ population_asian                            <dbl> 0, 43, 0, 0, 19, 0, 11, 0,…
$ population_black_or_african_american        <dbl> 0, 65, 0, 0, 15, 0, 1, 0, …
$ population_hispanic_or_latino               <dbl> 1, 52, 0, 0, 84, 0, 3, 0, …
$ population_native_american_or_alaska_native <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ population_other_or_multiple                <dbl> 0, 2, 0, 0, 11, 0, 2, 0, 0…
$ population_pacific_islander                 <dbl> 0, 0, 0, 0, 0, 0, 2, 0, 0,…
$ population_white                            <dbl> 0, 108, 0, 0, 11, 0, 2, 0,…
$ percent_asian                               <dbl> 0.00, 15.91, 5.93, 0.00, 1…
$ percent_black_or_african_american           <dbl> 0.00, 24.01, 0.00, 3.23, 1…
$ percent_hispanic_or_latino                  <dbl> 69.19, 19.27, 44.60, 3.90,…
$ percent_native_american_or_alaska_native    <dbl> 0.00, 0.00, 0.00, 0.00, 0.…
$ percent_other_or_multiple                   <dbl> 2.10, 0.62, 3.63, 3.63, 8.…
$ percent_pacific_islander                    <dbl> 0.00, 0.00, 0.00, 0.00, 0.…
$ percent_white                               <dbl> 28.71, 40.19, 45.84, 89.23…
$ poverty_rate_percent                        <dbl> 17.42, 37.48, 15.75, 35.94…
$ poverty_above_count                         <dbl> 0.96138194, 168.40831181, …
$ poverty_below_count                         <dbl> 0.20279150, 100.95245505, …
$ poverty_total_assessed                      <dbl> 1.16417345, 269.36076686, …
$ geometry                                    <MULTIPOLYGON [m]> MULTIPOLYGON …

Table 2 provides a complete view of the cleaned and re-formatted dataset. These results are saved locally in tabular and spatial format in Section 6.5.

water_systems_sac_demographics %>%
    kable(caption = 'A Caption') %>% 
    scroll_box(height = "400px")
Table 2: Water System Demographics
A Caption
WATER_SY_1 WATER_SYST GLOBALID BOUNDARY_T OWNER_TYPE COUNTY REGULATING FEDERAL_CL STATE_CLAS SERVICE_CO POPULATION population_total population_percent_difference household_count households_income_100k_125k households_income_10k_15k households_income_125k_150k households_income_150k_200k households_income_15k_20k households_income_20k_25k households_income_25k_30k households_income_30k_35k households_income_35k_40k households_income_40k_45k households_income_45k_50k households_income_50k_60k households_income_60k_75k households_income_75k_100k households_income_above_200k households_income_below_10k households_mortgage_over30pct households_mortgage_over50pct households_mortgage_total households_no_mortgage_over30pct households_no_mortgage_over50pct households_no_mortgage_total households_rent_over30pct households_rent_over50pct households_rent_total population_asian population_black_or_african_american population_hispanic_or_latino population_native_american_or_alaska_native population_other_or_multiple population_pacific_islander population_white percent_asian percent_black_or_african_american percent_hispanic_or_latino percent_native_american_or_alaska_native percent_other_or_multiple percent_pacific_islander percent_white poverty_rate_percent poverty_above_count poverty_below_count poverty_total_assessed geometry
HOOD WATER MAINTENCE DIST [SWS] CA3400101 {36268DB3-9DB2-4305-A85A-2C3A85F20F34} Water Service Area L SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 82 100 1 -99.00 0.4112161 0.0525756 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0694749 0.0375540 0.0187770 0.0469425 0.0506979 0.0657195 0.0131439 0.0563310 0.0544533 0.0000000 0.0544533 0.0563310 0.0563310 0.1652375 0.0769857 0.0488202 0.1915253 0 0 1 0 0 0 0 0.00 0.00 69.19 0.00 2.10 0.00 28.71 17.42 0.9613819 0.2027915 1.1641734 MULTIPOLYGON (((-132703 403...
MC CLELLAN MHP CA3400179 {E3BF3C3E-D516-45B2-A5AD-6900F8D16715} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 199 700 269 -61.57 82.1684510 3.4236855 1.9431728 0.0000000 2.9610253 3.4236855 6.7548389 11.3814409 1.9431728 1.5730447 1.3879806 3.1460893 1.2954486 15.4528506 19.7093244 0.0000000 7.7726913 3.7938136 1.5730447 9.3457360 0.8327884 0.8327884 24.5209905 33.8667264 26.6492274 48.3017246 43 65 52 0 2 0 108 15.91 24.01 19.27 0.00 0.62 0.00 40.19 37.48 168.4083118 100.9524550 269.3607669 MULTIPOLYGON (((-119809.2 7...
MAGNOLIA MUTUAL WATER CA3400130 {BADB48CD-AF05-4135-8FD5-9990BE415405} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 34 40 1 -97.50 0.3600789 0.0024719 0.0090638 0.0148316 0.0140076 0.0131837 0.0000000 0.0205995 0.0090638 0.0000000 0.0230714 0.0222474 0.0090638 0.1384285 0.0000000 0.0609745 0.0230714 0.0000000 0.0000000 0.1235969 0.0230714 0.0230714 0.0494387 0.0650943 0.0296632 0.1870433 0 0 0 0 0 0 0 5.93 0.00 44.60 0.00 3.63 0.00 45.84 15.75 0.7844281 0.1466683 0.9310964 MULTIPOLYGON (((-137015.5 3...
KORTHS PIRATES LAIR CA3400135 {7A556C0E-57E2-499A-9B87-B5707C837DA8} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 64 150 0 -100.00 0.0489835 0.0062708 0.0081639 0.0000000 0.0014198 0.0024847 0.0027213 0.0018931 0.0005916 0.0004733 0.0022480 0.0013015 0.0000000 0.0067441 0.0035495 0.0026030 0.0085189 0.0035495 0.0035495 0.0084005 0.0031946 0.0008282 0.0301710 0.0069807 0.0069807 0.0104119 0 0 0 0 0 0 0 0.00 3.23 3.90 0.00 3.63 0.00 89.23 35.94 0.0563192 0.0315908 0.0879099 MULTIPOLYGON (((-137297.1 1...
EL DORADO MOBILE HOME PARK CA3400121 {23B9391F-B6E7-44CE-A0EA-C2EE522857BF} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 128 256 139 -45.70 48.2151375 0.0000000 9.7199081 4.3382641 0.0000000 0.0000000 3.6792873 5.6562177 0.7688063 0.0000000 7.5233187 1.4826978 7.2487450 0.4393179 0.9335505 0.8237210 5.6013030 0.0000000 0.0000000 3.1850546 5.3267293 5.3267293 9.6649934 17.1883121 9.6649934 35.3650894 19 15 84 0 11 0 11 13.27 10.48 60.26 0.00 8.19 0.00 7.80 43.12 78.8026450 59.7472319 138.5498768 MULTIPOLYGON (((-124533.7 5...
RIVER'S EDGE MARINA & RESORT CA3400107 {F56E068C-AE1B-4C68-A2AF-F5058871E4E2} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 83 150 0 -100.00 0.0782305 0.0100150 0.0130384 0.0000000 0.0022676 0.0039682 0.0043461 0.0030234 0.0009448 0.0007559 0.0035903 0.0020786 0.0000000 0.0107709 0.0056689 0.0041572 0.0136053 0.0056689 0.0056689 0.0134163 0.0051020 0.0013227 0.0481854 0.0111488 0.0111488 0.0166287 0 0 0 0 0 0 0 0.00 3.23 3.90 0.00 3.63 0.00 89.23 35.94 0.0899462 0.0504530 0.1403991 MULTIPOLYGON (((-141320.7 1...
LAGUNA VILLAGE RV PARK CA3400397 {5184D6CC-8084-494D-BD81-B0009F76F1FD} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 28 32 20 -37.50 6.6830099 0.3588648 0.0000000 0.8057530 0.8531502 0.0947945 0.2099020 0.1963600 0.1151076 0.0000000 0.2708413 0.2911544 0.1083365 0.7041875 1.3745198 0.6432482 0.6567902 1.2729543 0.4807434 2.8302919 0.1625048 0.0067710 1.0562812 0.7380426 0.3317806 2.7964368 11 1 3 0 2 2 2 52.62 7.28 12.79 0.00 10.45 8.38 8.48 11.79 17.8890701 2.3901748 20.2792449 MULTIPOLYGON (((-122362.2 4...
SPINDRIFT MARINA CA3400169 {3B1EC48B-B696-452E-A769-99EF03DE955E} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 50 100 0 -100.00 0.0954742 0.0122225 0.0159124 0.0000000 0.0027674 0.0048429 0.0053041 0.0036898 0.0011531 0.0009225 0.0043817 0.0025368 0.0000000 0.0131450 0.0069184 0.0050735 0.0166042 0.0069184 0.0069184 0.0163736 0.0062266 0.0016143 0.0588066 0.0136062 0.0136062 0.0202940 0 0 0 0 0 0 0 0.00 3.23 3.90 0.00 3.63 0.00 89.23 35.94 0.1097723 0.0615740 0.1713463 MULTIPOLYGON (((-140144.2 1...
SAC CITY MOBILE HOME COMMUNITY LP CA3400296 {BBEBB4AF-57F6-4CBA-9746-6EDDFF0BB86B} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 164 350 229 -34.57 89.4406295 3.7479883 16.1844949 4.2590776 0.0000000 9.0292445 9.8810600 7.6663397 0.0000000 0.0000000 4.2590776 2.0443572 6.6441611 1.3629048 13.2883221 0.0000000 11.0736018 1.5332679 1.5332679 3.5776252 1.5332679 0.0000000 15.3326793 40.7167818 30.1542694 70.5303250 123 7 82 0 0 0 17 53.57 3.27 35.66 0.00 0.00 0.00 7.50 48.14 118.9134465 110.3952913 229.3087378 MULTIPOLYGON (((-124542.8 5...
ORANGE VALE WATER COMPANY CA3410016 {E7FB0496-8E98-4C1C-B073-40B7F2308EE3} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 5684 18005 17387 -3.43 6595.2837104 900.7356837 111.3937778 625.6077965 677.8935478 60.8572084 93.5577120 225.5184953 57.9795142 273.6232058 119.6327762 180.8290498 371.6355706 751.7849002 989.6690621 765.6465676 388.9188424 1021.3048996 452.6481914 3246.4149049 314.6881475 184.8067075 1686.0642367 693.1235814 304.7507104 1662.8045688 633 241 2658 181 1281 86 12308 3.64 1.39 15.28 1.04 7.37 0.49 70.79 11.01 15384.0773580 1903.9653820 17288.0427400 MULTIPOLYGON (((-104831.8 7...
GOLDEN STATE WATER CO. - CORDOVA CA3410015 {D09864D9-0038-4D96-AA06-F1D0F4207324} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 14798 44928 48115 7.09 18022.2724131 2565.3574304 481.6820516 1671.0168964 1948.4422260 309.5110295 496.0689166 480.3416859 437.3376210 389.0523221 469.4236925 597.8111431 1276.1636931 1691.6766283 2652.7212636 2046.7106756 508.9551374 2173.8952361 835.7380588 7379.6730993 364.1246811 201.1308054 3505.8045695 2744.1803381 1410.0874409 7136.7947443 6050 3982 9009 229 2615 188 26042 12.57 8.28 18.72 0.48 5.43 0.39 54.13 9.21 43427.4521762 4408.0063561 47835.4585323 MULTIPOLYGON (((-105024.5 6...
HOLIDAY MOBILE VILLAGE CA3400335 {31419106-A98A-447B-AAF5-674FA6C8D17F} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 115 200 46 -77.00 16.1279783 0.5855042 1.0379392 0.4258212 0.0000000 0.0000000 1.1177807 0.3459797 0.8782562 4.6840333 0.5588903 0.3992074 0.0000000 2.4218581 1.8097401 0.0000000 1.8629678 0.3992074 0.0000000 2.4750858 1.1177807 0.7718009 1.9960369 5.7219725 3.8323909 11.6568556 15 3 18 0 3 0 7 32.49 7.10 38.66 0.00 6.64 0.00 15.12 22.33 35.8222093 10.2995505 46.1217599 MULTIPOLYGON (((-123885.3 5...
SOUTHWEST TRACT W M D [SWS] CA3400156 {0B3A9348-87E2-475F-B9EB-8A0E7658CA58} Water Service Area L SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 33 150 174 16.00 56.6169348 0.0000000 2.0808674 1.3005421 2.0808674 6.9362248 0.0000000 7.1963332 0.0000000 0.0000000 10.2309316 11.6181765 3.1213012 2.4276787 4.5952489 4.4218433 0.6069197 1.0404337 0.0000000 3.2080040 0.0000000 0.0000000 8.3234697 28.6986300 7.0229276 45.0854611 75 24 29 3 0 1 42 43.11 13.69 16.58 1.55 0.00 0.60 24.48 21.83 135.6898973 37.8891279 173.5790252 MULTIPOLYGON (((-125846.9 5...
CARMICHAEL WATER DISTRICT CA3410004 {2E757010-FDE6-4A95-9D60-16E621A3CEAC} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 11704 37897 39253 3.58 15937.0599353 1724.3160580 533.5977949 1199.7655014 1678.4193378 512.5932529 471.9441689 397.9273383 607.1599246 521.5633164 683.9909627 540.5514556 996.3263051 1594.7356744 1782.2476094 2121.9683481 569.9528868 1399.3542055 668.5650482 5256.1106375 358.0036122 177.4504952 3146.6518891 4055.8665545 2068.2998480 7534.2974087 3326 2230 6192 68 2116 295 25026 8.47 5.68 15.78 0.17 5.39 0.75 63.76 12.92 33699.9843977 5000.0233004 38700.0076981 MULTIPOLYGON (((-112199 690...
SCWA - ARDEN PARK VISTA CA3410002 {0FF3353C-7B37-44EC-A4B4-AB9A9D8BF79C} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 3043 10035 8086 -19.42 3303.3321668 464.8463772 36.2252598 207.8772002 416.0024649 48.4429082 77.3408834 64.6262639 37.7691910 17.5275827 48.6809905 161.5983651 138.5712947 186.9749090 253.0854846 1065.0769123 78.6860792 520.3241678 111.8599784 1822.9354385 76.4172240 22.9130304 673.1932014 384.0582803 225.3146454 807.2035269 396 270 990 12 395 8 6016 4.90 3.33 12.24 0.15 4.88 0.10 74.40 6.51 7514.9400515 523.1232757 8038.0633273 MULTIPOLYGON (((-120321.1 6...
SCWA - LAGUNA/VINEYARD CA3410029 {0D088865-F70E-43D5-899E-1B988AB097B9} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 47411 172666 145495 -15.74 45136.7375015 5322.5294772 665.6645745 5057.0689734 6577.5987020 742.3252838 877.9535408 838.5620300 1336.4151580 850.4024099 788.0623175 752.0385993 2362.8780777 3198.0928072 6037.4843391 8037.9755292 1691.6856820 7231.9926132 2915.5290405 24581.2965388 860.9255708 470.9663263 7878.0360736 6368.0895369 3336.6734065 12677.4048891 50411 16568 27502 246 10052 2220 38496 34.65 11.39 18.90 0.17 6.91 1.53 26.46 10.13 130488.6918979 14709.7353786 145198.4272765 MULTIPOLYGON (((-125203.9 4...
RIO COSUMNES CORRECTIONAL CENTER [SWS] CA3400229 {887BC04D-196C-4104-AF6A-DE128C8105D0} Water Service Area L SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 13 2800 22 -99.21 1.2918032 0.6297541 0.0000000 0.2422131 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.3068033 0.0000000 0.0000000 0.0000000 0.1130328 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.8719672 0.0000000 0.0000000 0.1130328 0.3068033 0.0000000 0.3068033 1 4 6 1 2 0 8 4.50 16.82 25.74 2.97 10.66 1.81 37.49 0.00 4.4567210 0.0000000 4.4567210 MULTIPOLYGON (((-124028.8 3...
SCWA MATHER-SUNRISE CA3410704 {4E3FC0F8-4DB3-4B03-AAEB-C965EE668712} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 6921 22839 18249 -20.10 5503.4347766 644.6310835 34.5914763 754.6721725 1002.5876562 96.5328507 57.1333078 68.4852856 38.5727314 11.5056903 19.8169793 35.6752369 188.7925174 320.4496478 533.0655801 1469.0347467 227.8878142 881.1934264 266.4397612 3755.5193696 60.4771366 43.0746683 855.3673715 318.0997475 166.9204055 892.5480355 4507 1553 2708 23 1180 164 8114 24.70 8.51 14.84 0.12 6.47 0.90 44.47 5.52 17205.7757805 1005.1926521 18210.9684327 MULTIPOLYGON (((-108416.1 5...
TUNNEL TRAILER PARK CA3400192 {896615F1-429B-4829-8D45-45AF249034BC} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 21 44 0 -100.00 0.0165565 0.0017649 0.0000000 0.0000000 0.0094128 0.0000000 0.0014287 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0026053 0.0000000 0.0013447 0.0000000 0.0000000 0.0026894 0.0000000 0.0076479 0.0006723 0.0000000 0.0056309 0.0000000 0.0000000 0.0032777 0 0 0 0 0 0 0 4.65 0.00 49.74 0.00 10.67 0.00 34.94 0.00 0.0488291 0.0000000 0.0488291 MULTIPOLYGON (((-136156.2 2...
IMPERIAL MANOR MOBILEHOME COMMUNITY CA3400190 {1F6AA119-33B3-4518-92C8-62843A00AE53} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 186 200 209 4.50 124.3703460 0.0000000 25.9994950 0.0000000 0.0000000 17.5734656 2.8363085 0.0704618 15.5996970 7.4411127 4.5053287 6.1453352 0.9454362 3.7817447 28.8358035 6.3816942 4.2544628 0.0000000 0.0000000 8.9816437 36.8720111 34.0357025 88.8710010 26.5177012 22.0123725 26.5177012 6 1 52 0 21 0 129 2.93 0.45 24.93 0.00 10.05 0.00 61.63 21.48 164.4684875 44.9910101 209.4594975 MULTIPOLYGON (((-115157 740...
CALAM - ISLETON CA3410012 {24CB80A8-8A7C-46E9-8413-3346147E7444} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 480 1581 34 -97.85 16.2336094 2.9637515 1.2133506 0.9302355 0.4914932 0.4448952 0.6812770 0.7280104 0.3235602 0.9302355 0.7280104 0.1617801 2.1178443 1.1729056 0.7577787 1.4155757 1.1729056 3.7400335 1.1324606 6.1829762 1.8551326 1.6178008 6.5225515 0.8089004 0.6066753 3.5280817 2 0 14 0 1 0 17 4.55 0.00 42.06 0.00 2.25 0.00 51.14 20.89 26.6548535 7.0374337 33.6922872 MULTIPOLYGON (((-138559.3 1...
FOLSOM, CITY OF - ASHLAND CA3410030 {C83A0A46-997F-44BF-9441-C2DBC0D706CF} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 1079 3538 3845 8.68 1799.7030393 132.3166375 17.2265963 79.8748540 122.5819340 103.5596466 42.9221364 33.7589226 209.0008907 103.1571051 73.6177167 43.3463904 43.3896373 158.0481682 247.7733397 345.3208615 43.8082024 163.9652512 90.3906967 593.7964348 367.6575353 81.6863124 847.4360028 195.9003890 74.3934966 358.4706017 125 43 318 1 423 1 2934 3.26 1.12 8.26 0.03 10.99 0.02 76.32 3.79 3636.5160126 143.3077376 3779.8237502 MULTIPOLYGON (((-100505 774...
LOCKE WATER WORKS CO [SWS] CA3400138 {66BAF16E-A801-4313-B7B8-FF4E564CA9F6} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 44 80 1 -98.75 0.4115898 0.0028256 0.0103604 0.0169534 0.0160115 0.0150696 0.0000000 0.0235463 0.0103604 0.0000000 0.0263719 0.0254300 0.0103604 0.1582313 0.0000000 0.0696971 0.0263719 0.0000000 0.0000000 0.1412780 0.0263719 0.0263719 0.0565112 0.0744064 0.0339067 0.2138006 0 0 0 0 0 0 0 5.93 0.00 44.60 0.00 3.63 0.00 45.84 15.75 0.8966441 0.1676498 1.0642940 MULTIPOLYGON (((-131976.7 2...
DEL PASO MANOR COUNTY WATER DI CA3410007 {BC88D650-D07A-47DF-A872-CD3F6142791A} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 1796 4520 5592 23.72 2221.9390972 170.5870031 45.3809110 120.2825323 346.5586719 53.7173908 66.3032589 21.4396308 51.3430451 66.0596461 237.1084233 40.3903109 157.6807268 278.1739919 165.5702722 231.0331020 170.3101801 325.8336617 188.7334656 921.6068532 111.5401988 67.6595556 571.5015208 508.8525659 114.0279242 728.8307232 119 390 687 15 382 31 3967 2.13 6.97 12.28 0.26 6.84 0.56 70.95 11.10 4970.7949939 620.9055619 5591.7005557 MULTIPOLYGON (((-120274.9 6...
EAST WALNUT GROVE [SWS] CA3400106 {6E5DA14E-1740-4320-A7E4-FD9B48240017} Water Service Area L SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 166 300 3 -99.00 1.3439937 0.0092265 0.0338305 0.0553590 0.0522835 0.0492080 0.0000000 0.0768875 0.0338305 0.0000000 0.0861140 0.0830385 0.0338305 0.5166841 0.0000000 0.2275870 0.0861140 0.0000000 0.0000000 0.4613251 0.0861140 0.0861140 0.1845300 0.2429645 0.1107180 0.6981386 0 0 2 0 0 0 2 5.93 0.00 44.60 0.00 3.63 0.00 45.84 15.75 2.9278765 0.5474391 3.4753156 MULTIPOLYGON (((-132506.6 2...
FOLSOM STATE PRISON CA3410032 {CFEFFCD1-76A3-4403-A906-D04B910D61C5} Water Service Area S SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 2790 9703 3536 -63.56 22.5426613 4.1517526 0.0000000 4.0329731 12.1469937 0.1064474 0.0085195 0.0001474 0.0049313 0.0005898 0.0000000 0.0078093 0.2240872 0.1126992 0.2620161 1.3895998 0.0940949 0.9386397 0.1192110 3.1453984 0.1115472 0.0004353 0.4520514 0.0036714 0.0002949 18.9452115 70 1390 1257 57 77 34 652 1.97 39.31 35.55 1.60 2.17 0.96 18.43 2.20 28.1916388 0.6348719 28.8265107 MULTIPOLYGON (((-99838.11 7...
CALAM - ARDEN CA3410045 {FC35B709-C658-4890-B64C-374368BFAC79} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 1185 3908 10112 158.75 3823.4030385 227.8237249 258.6358544 148.0773037 62.2606019 239.2704507 167.2117959 318.9373630 189.7774321 141.9916915 236.0923455 206.5761768 440.1718547 393.6199161 534.5491374 57.5818264 200.8255635 84.3191682 45.9095962 264.6683172 8.0957445 3.1275988 132.9715104 2124.1154199 1169.6691535 3425.7632110 1082 1977 3433 70 1100 59 2392 10.70 19.55 33.95 0.69 10.87 0.58 23.65 31.19 6903.8350964 3129.7143646 10033.5494610 MULTIPOLYGON (((-123013.9 6...
EDGEWATER MOBILE HOME PARK CA3400433 {FA333DDB-BCD6-4D29-9D40-664577E929C9} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 22 40 0 -100.00 0.0323964 0.0041474 0.0053994 0.0000000 0.0009390 0.0016433 0.0017998 0.0012520 0.0003913 0.0003130 0.0014868 0.0008608 0.0000000 0.0044604 0.0023476 0.0017215 0.0056342 0.0023476 0.0023476 0.0055559 0.0021128 0.0005478 0.0199543 0.0046169 0.0046169 0.0068862 0 0 0 0 0 0 0 0.00 3.23 3.90 0.00 3.63 0.00 89.23 35.94 0.0372481 0.0208933 0.0581414 MULTIPOLYGON (((-153715.8 7...
CALAM - LINCOLN OAKS CA3410013 {488DCE2C-6EEA-4377-8984-5833F5D03CDF} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 14390 47487 42916 -9.63 15621.3809893 1888.7872953 375.3828366 1272.1217031 1555.1540910 308.1458139 622.2810854 488.2818455 616.3732436 585.1829345 628.7492052 645.4504947 1034.6867979 1640.6899168 2442.1704417 778.1108146 739.8124694 2670.6595161 919.4308898 7390.0598679 502.5707184 297.5609445 3331.7506863 2522.8453244 1302.1867347 4899.5704351 2706 1486 9056 143 2708 288 26529 6.31 3.46 21.10 0.33 6.31 0.67 61.82 9.51 38749.4769263 4073.9481050 42823.4250313 MULTIPOLYGON (((-113737.5 7...
VIEIRA'S RESORT, INC CA3400164 {C8E1FF09-C1ED-47D9-BD1C-AE3C754ABA72} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 107 150 4 -97.33 2.1367242 0.3992300 0.1686888 0.1293280 0.0000000 0.0618525 0.0843444 0.1012133 0.0449837 0.1293280 0.1012133 0.0224918 0.2755250 0.1630658 0.0955903 0.1968035 0.1630658 0.5004433 0.1574428 0.8040830 0.2530331 0.2249183 0.8659356 0.1124592 0.0843444 0.4667055 0 0 2 0 0 0 2 4.55 0.00 41.43 0.00 1.56 0.00 52.47 22.60 3.3512832 0.9783948 4.3296779 MULTIPOLYGON (((-143708.1 1...
FLORIN COUNTY WATER DISTRICT CA3410033 {7D72D48E-DB2F-4E79-B396-70EEB030D102} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 2323 7831 9951 27.07 2755.4087157 296.9354278 124.6257543 214.6215268 142.8389081 53.3547129 154.3761991 102.8638213 46.0111239 85.7880801 175.8361672 224.2674437 257.8035909 222.7155372 432.0027291 137.0102004 84.3574930 425.6666406 89.9994530 980.7724658 48.5268687 27.7142782 674.7293649 475.7493760 259.6899077 1099.9068850 2743 1394 2963 7 430 866 1548 27.56 14.01 29.78 0.07 4.32 8.70 15.56 13.06 8549.7113979 1284.8842784 9834.5956763 MULTIPOLYGON (((-119638.3 5...
WESTERNER MOBILE HOME PARK CA3400331 {5DF48C4F-72B2-40C9-B2F7-10F9FF855DCC} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 49 65 32 -50.77 9.8864417 1.7859379 0.0000000 0.1093431 0.6925065 0.1093431 0.1093431 0.6651707 0.1366789 0.4373725 0.6104992 0.0000000 2.1504150 0.9111928 0.9476405 0.1731266 1.0478717 1.8679452 0.8565212 3.9090170 0.3280294 0.3280294 0.8565212 3.4260849 1.7312663 5.1209035 10 9 6 0 1 0 6 31.36 28.31 17.59 0.55 4.57 0.00 17.62 23.76 23.8276913 7.4262212 31.2539125 MULTIPOLYGON (((-122693.1 4...
EL DORADO WEST MHP CA3400122 {2667CD45-9C2C-41B7-A95B-2F343B570215} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 128 172 148 -13.95 51.1665127 0.0000000 10.3148892 4.6038206 0.0000000 0.0000000 3.9045061 6.0024497 0.8158669 0.0000000 7.9838408 1.5734577 7.6924598 0.4662097 0.9906956 0.8741432 5.9441735 0.0000000 0.0000000 3.3800202 5.6527924 5.6527924 10.2566130 18.2404539 10.2566130 37.5298795 20 16 89 0 12 0 12 13.27 10.48 60.26 0.00 8.19 0.00 7.80 43.12 83.6263619 63.4045169 147.0308788 MULTIPOLYGON (((-124742.1 5...
TOKAY PARK WATER CO CA3400172 {D2908483-C728-45ED-9A75-BA27D6E66685} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 198 525 652 24.19 172.9103108 13.8638644 1.8971726 3.7737854 10.4172265 2.5212446 20.5379761 0.0041485 0.0064015 12.6022626 13.3274782 10.3961842 17.9662119 27.3715141 36.0110885 0.0027623 2.2109893 37.8735331 11.3805327 80.9724226 0.0051347 0.0011499 43.7650747 32.2708872 12.0942179 48.1728135 239 37 214 0 28 0 134 36.69 5.61 32.80 0.00 4.35 0.00 20.55 17.29 538.8538080 112.6465489 651.5003569 MULTIPOLYGON (((-122789.8 5...
LAGUNA DEL SOL INC CA3400181 {F64FE571-B7DD-4F78-BBCF-2057DA131C24} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 112 470 24 -94.89 8.9804190 0.3985393 0.8767865 0.3985393 0.7439400 0.9033558 0.4251086 0.3985393 0.0000000 0.2656929 0.0000000 0.0000000 0.0000000 0.0000000 1.9926965 2.4178051 0.1594157 1.7004344 1.7004344 4.8621795 0.0000000 0.0000000 2.5240823 0.3985393 0.3985393 1.5941572 0 0 5 0 0 0 18 1.46 0.00 21.55 0.67 1.12 0.00 75.20 6.40 22.1587853 1.5144494 23.6732346 MULTIPOLYGON (((-105025.5 4...
OLYMPIA MOBILODGE CA3410022 {B1E1B46F-9300-473E-B970-1D739E004B14} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 200 450 290 -35.56 114.4237404 2.6713714 0.2226143 11.7985569 5.1201285 6.4558141 10.0176426 8.9045712 3.3392142 13.1342426 0.0000000 0.0000000 10.0176426 18.6995996 7.5688856 5.3427427 11.1307140 21.5935853 9.7950284 30.7207708 12.2437855 10.0176426 50.7560561 8.9045712 7.3462713 32.9469136 101 18 70 0 3 16 81 34.95 6.30 24.12 0.00 1.08 5.53 28.03 23.43 221.9464382 67.8973557 289.8437939 MULTIPOLYGON (((-123549.9 5...
GOLDEN STATE WATER CO - ARDEN WATER SERV CA3410003 {E2997C83-F848-48AF-8915-B45E6469AC6E} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 1716 5125 6556 27.92 2173.3862508 131.7147921 82.2403920 171.7079195 140.8479724 19.2857784 140.6953734 52.8057022 172.6873796 34.4563047 178.9267558 37.1685200 138.6454528 351.1414354 319.0998779 182.5319559 19.4306387 238.5720694 123.1865478 727.7085408 0.2417045 0.2417045 130.6029265 599.3176233 334.9873262 1315.0747835 888 322 1706 0 742 11 2887 13.54 4.91 26.02 0.00 11.32 0.16 44.04 25.19 4827.6115519 1625.5697248 6453.1812768 MULTIPOLYGON (((-120307.3 6...
ELEVEN OAKS MOBILE HOME COMMUNITY CA3400191 {AB99BC88-8951-414B-BA24-E873AF46C168} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 136 262 233 -11.07 71.2146352 2.9672765 1.6841299 0.0000000 2.5662932 2.9672765 5.8543563 9.8641893 1.6841299 1.3633432 1.2029499 2.7266865 1.1227533 13.3928424 17.0818888 0.0000000 6.7365195 3.2880631 1.3633432 8.0998628 0.7217700 0.7217700 21.2521152 29.3519780 23.0966384 41.8626572 37 56 45 0 1 0 94 15.91 24.01 19.27 0.00 0.62 0.00 40.19 37.48 145.9579234 87.4945574 233.4524808 MULTIPOLYGON (((-119816 721...
CALAM - ANTELOPE CA3410031 {AE6C5C3E-859C-4CD7-B3DF-5913A953F8F9} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 10528 34720 33120 -4.61 10529.3295307 1500.7495311 184.1450913 1077.3930203 1157.7794652 100.9615090 122.3726286 116.4469685 468.5101697 247.5986494 368.3586872 449.4701379 737.4305999 1076.7061396 1668.6530780 937.3259723 315.4278826 1860.8089818 620.5036265 5544.0872962 184.3698474 106.3231597 1747.2662153 1678.4584065 649.2056543 3237.9760191 2947 3199 5245 113 2082 77 19456 8.90 9.66 15.84 0.34 6.29 0.23 58.74 10.26 29644.8479042 3388.7925699 33033.6404741 MULTIPOLYGON (((-123334.7 8...
CALIFORNIA STATE FAIR CA3410026 {C97F5649-348B-4378-9C32-3B6D3E82725B} Water Service Area S SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 269 650 532 -18.15 285.4716540 20.7008685 13.0215140 11.0182042 17.0281337 8.3471244 5.3421596 9.3487793 13.6892840 2.0033099 0.0000000 23.3719483 28.7141079 30.0496478 34.7240374 3.3388498 64.7736852 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 177.2929219 95.4911030 285.4716540 48 91 78 0 52 0 262 9.10 17.13 14.68 0.00 9.85 0.00 49.25 28.89 373.9511725 151.9176638 525.8688363 MULTIPOLYGON (((-125658 651...
PLANTATION MOBILE HOME PARK CA3400401 {6BF6AFC4-25D1-4131-BA1A-CE81F4561902} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 44 44 10 -77.27 3.3251292 0.1207143 0.2139935 0.0877922 0.0000000 0.0000000 0.2304545 0.0713312 0.1810714 0.9657141 0.1152273 0.0823052 0.0000000 0.4993181 0.3731168 0.0000000 0.3840908 0.0823052 0.0000000 0.5102921 0.2304545 0.1591233 0.4115259 1.1797076 0.7901297 2.4033112 3 1 4 0 1 0 1 32.49 7.10 38.66 0.00 6.64 0.00 15.12 22.33 7.3855181 2.1234736 9.5089917 MULTIPOLYGON (((-124338.4 5...
CALAM - PARKWAY CA3410017 {78A7BD82-DB23-4AC1-8736-574511C4CC84} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 14779 48738 58635 20.31 17666.7886640 1633.5316867 753.3380936 1531.9788719 1545.6177541 514.1300586 712.7247277 694.3526534 639.9551980 713.2865314 700.4012000 727.1387473 1145.1392905 1918.3765008 2490.3823970 865.4412869 1080.9936661 2718.9202130 1049.2628405 7162.9956077 646.5433097 383.4428179 3418.0266877 3517.2627210 1917.1472603 7085.7663686 19228 6965 18665 21 3449 1386 8921 32.79 11.88 31.83 0.04 5.88 2.36 15.21 16.78 48630.3167965 9803.7863660 58434.1031625 MULTIPOLYGON (((-123335.4 5...
CITRUS HEIGHTS WATER DISTRICT CA3410006 {20EF35DA-A434-4A91-BE3D-7D996B8C6730} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 19940 65911 68912 4.55 25632.8367034 2743.5767440 568.7994440 2331.8277629 2533.3929840 445.8866083 769.4115233 665.4069464 867.0779805 841.0558325 723.3234592 1164.6015213 1875.0627674 3057.1645880 3953.9411189 2080.4093464 1011.8980764 3552.5017711 1380.0948194 10344.1670582 554.2501347 285.7944238 4292.6223834 5758.6426763 2620.3849095 10996.0472617 2875 2092 12380 162 3186 71 48148 4.17 3.04 17.96 0.23 4.62 0.10 69.87 10.15 61620.0399314 6961.1604963 68581.2004277 MULTIPOLYGON (((-113645.4 7...
SEQUOIA WATER ASSOC CA3400155 {D4629F0D-8EAD-4402-88C8-D55C4121EA5B} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 18 54 0 -100.00 0.0948332 0.0006510 0.0023871 0.0039062 0.0036892 0.0034722 0.0000000 0.0054252 0.0023871 0.0000000 0.0060763 0.0058593 0.0023871 0.0364576 0.0000000 0.0160587 0.0060763 0.0000000 0.0000000 0.0325514 0.0060763 0.0060763 0.0130206 0.0171438 0.0078123 0.0492612 0 0 0 0 0 0 0 5.93 0.00 44.60 0.00 3.63 0.00 45.84 15.75 0.2065932 0.0386277 0.2452209 MULTIPOLYGON (((-136917.7 3...
FAIR OAKS WATER DISTRICT CA3410009 {797F9D1A-2D43-4FA9-882A-DAA2A539318A} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 14293 35114 36003 2.53 14233.4070807 1447.1879511 332.3588693 1568.3188854 1874.6761780 113.0360901 229.1722624 208.1588999 391.4233194 205.9499753 468.9849244 293.0716923 803.5523705 1064.3255362 2213.6241800 2473.8514603 545.7144862 1871.7864644 844.6722781 7090.3860908 261.1826011 108.3058016 3092.2584650 1843.9238233 768.3349827 4050.7625248 1372 708 4655 94 2113 12 27050 3.81 1.97 12.93 0.26 5.87 0.03 75.13 7.97 32923.4030065 2851.6924166 35775.0954231 MULTIPOLYGON (((-107763.5 6...
RANCHO MARINA CA3400149 {A2E2869F-FE8D-48EF-8762-16238D0B3F9A} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 77 250 0 -100.00 0.1521691 0.0194806 0.0253615 0.0000000 0.0044107 0.0077187 0.0084538 0.0058809 0.0018378 0.0014702 0.0069836 0.0040431 0.0000000 0.0209508 0.0110267 0.0080863 0.0264642 0.0110267 0.0110267 0.0260966 0.0099241 0.0025729 0.0937274 0.0216859 0.0216859 0.0323451 0 0 0 0 0 0 0 0.00 3.23 3.90 0.00 3.63 0.00 89.23 35.94 0.1749577 0.0981381 0.2730958 MULTIPOLYGON (((-138162.3 1...
FREEPORT MARINA CA3400125 {1A2ECBCF-8086-4599-91D1-7BDC9F543BC8} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 27 42 3 -92.86 1.0728029 0.1371620 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.1812498 0.0979729 0.0489864 0.1224661 0.1322634 0.1714525 0.0342905 0.1469593 0.1420607 0.0000000 0.1420607 0.1469593 0.1469593 0.4310806 0.2008444 0.1273647 0.4996616 0 0 2 0 0 0 1 0.00 0.00 69.19 0.00 2.10 0.00 28.71 17.42 2.5081055 0.5290535 3.0371590 MULTIPOLYGON (((-130871.1 5...
HAPPY HARBOR (SWS) CA3400128 {95E0CED3-1431-4EF7-B516-D9DE2E6F03C4} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 45 60 0 -100.00 0.0216151 0.0027671 0.0036025 0.0000000 0.0006265 0.0010964 0.0012008 0.0008354 0.0002611 0.0002088 0.0009920 0.0005743 0.0000000 0.0029760 0.0015663 0.0011486 0.0037591 0.0015663 0.0015663 0.0037069 0.0014097 0.0003655 0.0133136 0.0030804 0.0030804 0.0045945 0 0 0 0 0 0 0 0.00 3.23 3.90 0.00 3.63 0.00 89.23 35.94 0.0248521 0.0139402 0.0387923 MULTIPOLYGON (((-139870.3 1...
FOLSOM, CITY OF - MAIN CA3410014 {6E4D1E97-03EB-48F4-9F64-E74E49CC4CC2} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 21424 68122 62462 -8.31 22409.3823384 2382.4430031 218.1355460 1746.9283429 4083.1483087 390.0036513 476.8583096 417.5347017 283.0639620 329.3286579 373.3616549 451.4793379 670.3668140 1180.5443541 2255.4207366 6343.7663048 806.9986528 2727.7080877 1178.6318783 11490.6508104 237.1898408 146.3657554 3590.2477618 3009.7032962 1320.8580528 7328.4837662 12934 1693 8433 105 3897 177 35222 20.71 2.71 13.50 0.17 6.24 0.28 56.39 5.48 58709.8582238 3405.2750719 62115.1332958 MULTIPOLYGON (((-107067.9 6...
RANCHO MURIETA COMMUNITY SERVI CA3410005 {2C72EE8A-A081-49FB-8EEA-808BF54CDB58} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 2726 5744 3239 -43.61 1402.0967904 118.3930766 42.3473557 204.1395173 240.7495319 0.0000000 5.9102352 5.3262089 18.2285332 73.7524494 27.3517589 74.6522384 44.1562938 81.2814649 87.8793345 318.6065856 59.3222060 205.1382026 103.3669845 1029.1069175 63.0813034 57.1710682 269.5909676 40.5131013 39.9972505 103.3989053 188 120 661 7 106 0 2157 5.80 3.71 20.42 0.21 3.26 0.00 66.59 6.13 3039.9096847 198.6877215 3238.5974062 MULTIPOLYGON (((-95334.2 52...
CAL AM FRUITRIDGE VISTA CA3410023 {501904B9-FD46-4D56-89DE-D87AD8F5FD70} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 4667 15385 22603 46.92 6899.9140996 458.8445334 339.2099413 235.1486797 287.1473267 520.9996164 262.7374008 367.1883343 301.6105218 359.1749480 354.9332453 565.0609345 692.3060889 876.2377458 783.8075573 141.4321445 354.0750809 745.4935970 344.8495494 1619.8296502 94.9132221 57.5416225 1236.1776014 2130.6340062 1058.7419859 4043.9068480 4075 2663 10939 121 1060 240 3504 18.03 11.78 48.40 0.54 4.69 1.06 15.50 26.64 16546.1806283 6009.7140860 22555.8947143 MULTIPOLYGON (((-125839.3 5...
B & W RESORT MARINA CA3400103 {CEC00BE2-7FBA-4B81-BE20-7D326EB6EBF6} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 37 100 0 -100.00 0.0422931 0.0079021 0.0033389 0.0025598 0.0000000 0.0012243 0.0016695 0.0020034 0.0008904 0.0025598 0.0020034 0.0004452 0.0054536 0.0032276 0.0018921 0.0038954 0.0032276 0.0099055 0.0031163 0.0159156 0.0050084 0.0044519 0.0171398 0.0022260 0.0016695 0.0092377 0 0 0 0 0 0 0 4.55 0.00 41.43 0.00 1.56 0.00 52.47 22.60 0.0663334 0.0193658 0.0856992 MULTIPOLYGON (((-138335.4 1...
CALAM - SUBURBAN ROSEMONT CA3410010 {C7B2A772-B03D-4109-86B0-996D6A191F5F} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 16238 53563 57897 8.09 21045.1018353 2594.5943353 612.2587703 1593.9305166 1670.7351745 472.4194316 743.9075600 652.7686692 567.7706604 581.9992968 873.7032718 628.3855992 1288.6020796 2508.0974882 3438.3892872 1661.0922839 1156.4474108 2261.5294332 730.4776261 8262.3220973 438.6402189 271.0385123 3424.8520826 4520.7820567 2319.7944294 9357.9276554 6905 7725 13791 91 3942 380 25062 11.93 13.34 23.82 0.16 6.81 0.66 43.29 14.52 49286.9627735 8374.3720099 57661.3347833 MULTIPOLYGON (((-120054.6 5...
SAN JUAN WATER DISTRICT CA3410021 {5F6CA8E6-CCFE-44C8-978B-6012BDE0AD70} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 10672 29641 30122 1.62 10750.1495842 853.9948037 168.3039321 876.1496099 1032.1228618 100.4248825 274.9765606 127.7463448 159.7577616 110.8699984 133.2796406 126.6536145 472.3792109 684.0889993 984.1402476 4256.4919483 388.7691676 1754.1276808 723.8699666 6209.8360395 527.7347496 356.6210547 2882.6803563 726.1057528 339.1581882 1657.6331884 2762 831 3409 287 1467 17 21349 9.17 2.76 11.32 0.95 4.87 0.06 70.87 5.72 28296.8723978 1717.5297944 30014.4021922 MULTIPOLYGON (((-100141.1 8...
ELK GROVE WATER SERVICE CA3410008 {E33EFAB9-03BB-4AA6-B34C-E1B2B887AC40} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 12882 42540 42647 0.25 13238.9100963 1469.7831520 202.1735678 1385.9378896 1906.7785552 252.8846375 223.5107451 327.6343327 101.5057735 344.9642849 292.3949973 244.6466708 667.2277312 1116.8947162 1440.6413362 2832.0848266 429.8468798 1902.8226201 627.9585906 7551.9501142 282.8809066 112.6581718 2860.9103294 1594.5949046 863.8740389 2826.0496528 8939 3209 7656 70 2835 388 19550 20.96 7.53 17.95 0.16 6.65 0.91 45.84 7.72 38993.5138540 3264.0175810 42257.5314350 MULTIPOLYGON (((-113074.8 4...
DELTA CROSSING MHP CA3400150 {178C1128-CAD8-4118-8692-500FC1384637} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 22 30 0 -100.00 0.0565275 0.0072273 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0095503 0.0051623 0.0025812 0.0064529 0.0069691 0.0090341 0.0018068 0.0077435 0.0074854 0.0000000 0.0074854 0.0077435 0.0077435 0.0227142 0.0105828 0.0067110 0.0263279 0 0 0 0 0 0 0 0.00 0.00 69.19 0.00 2.10 0.00 28.71 17.42 0.1321555 0.0278766 0.1600321 MULTIPOLYGON (((-132728.4 4...
GALT, CITY OF CA3410011 {1EB5C880-698B-463D-916D-27EB4115BE84} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 7471 26536 21490 -19.02 6987.5357777 1096.3084285 168.1832539 504.4991186 788.6043595 243.2690568 210.1360339 140.5426889 341.9418512 160.7063475 347.3758689 152.2076332 550.4693882 686.5717245 807.1560200 650.1046848 139.4593192 907.4138072 523.4602820 3724.2608083 108.8264389 44.2709236 1454.3735494 906.4809387 414.1512468 1808.9014201 872 520 9314 22 789 20 9952 4.06 2.42 43.34 0.10 3.67 0.09 46.31 6.58 19937.1926609 1404.1088571 21341.3015180 MULTIPOLYGON (((-115624.6 2...
LINCOLN CHAN-HOME RANCH CA3400137 {8E59F56D-9D04-48D4-B6E4-F0584DA465D8} Water Service Area P SACRAMENTO LPA64 - SACRAMENTO COUNTY COMMUNITY COMMUNITY 19 33 4 -87.88 1.5038756 0.0103241 0.0378550 0.0619445 0.0585032 0.0550618 0.0000000 0.0860341 0.0378550 0.0000000 0.0963582 0.0929168 0.0378550 0.5781490 0.0000000 0.2546609 0.0963582 0.0000000 0.0000000 0.5162044 0.0963582 0.0963582 0.2064818 0.2718677 0.1238891 0.7811894 0 0 2 0 0 0 2 5.93 0.00 44.60 0.00 3.63 0.00 45.84 15.75 3.2761774 0.6125626 3.8887400 MULTIPOLYGON (((-137040.3 3...
RIO LINDA/ELVERTA COMMUNITY WATER DIST CA3410018 {03B163CA-7B3B-4A23-8E31-77AF963C2BF3} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 4621 14381 11831 -17.73 3761.6033554 491.6445232 156.4692332 430.8331149 415.6196965 66.8600922 168.7735897 56.2689625 112.6547781 116.4832566 114.0660929 118.0282656 173.1294602 297.2131196 606.9213690 259.3021303 177.3356710 572.5923869 157.1920756 1918.2923459 114.4708846 47.4533275 772.9578664 519.2560180 340.4159673 1070.3531430 765 337 2585 17 512 21 7595 6.46 2.85 21.85 0.14 4.33 0.18 64.19 13.69 10210.2384197 1618.8821031 11829.1205228 MULTIPOLYGON (((-125758.1 7...
SACRAMENTO SUBURBAN WATER DISTRICT CA3410001 {91C3BEAC-ACF7-4419-A57D-679912168873} Water Service Area L SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 46573 184385 193126 4.74 72505.3459272 6479.7222905 3001.4247113 4341.8155148 5488.0234146 3068.6350750 2883.7080242 3205.4749351 3100.4035000 3336.6907659 2893.3245566 2342.0597477 5541.2780373 6791.8950710 10036.8358151 6176.8449416 3817.2095264 7204.1308118 2837.1578291 23467.3263083 2086.9756387 1160.3317865 12037.3741485 21072.3795945 10273.7781043 37000.6454705 20602 17684 43047 834 12464 624 97872 10.67 9.16 22.29 0.43 6.45 0.32 50.68 17.49 157585.1487857 33398.9027882 190984.0515740 MULTIPOLYGON (((-115313.2 7...
CALAM - WALNUT GROVE CA3410047 {B1588BFA-E492-4087-BF44-72049EB4D5B5} Water Service Area P SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 197 651 12 -98.16 4.6150009 0.0316819 0.1161671 0.1900916 0.1795309 0.1689703 0.0000000 0.2640161 0.1161671 0.0000000 0.2956980 0.2851374 0.1161671 1.7741880 0.0000000 0.7814876 0.2956980 0.0000000 0.0000000 1.5840964 0.2956980 0.2956980 0.6336386 0.8342908 0.3801831 2.3972659 1 0 5 0 0 0 5 5.93 0.00 44.60 0.00 3.63 0.00 45.84 15.75 10.0537320 1.8797944 11.9335264 MULTIPOLYGON (((-132035.3 2...
CITY OF SACRAMENTO MAIN CA3410020 {8DB287D6-CBB3-484C-802F-FFC909F0959F} Water Service Area S SACRAMENTO DISTRICT 09 - SACRAMENTO COMMUNITY COMMUNITY 142794 510931 516189 1.03 194000.0141638 20453.4979307 9400.8965823 15079.7381061 17439.0633155 6216.6682096 6406.5976684 5803.8609561 6254.8170189 6278.4908829 6139.2199311 6728.5413058 13349.2772832 17395.8895949 26982.4616746 20530.7727300 9540.2209738 21768.6901173 8217.1719086 67434.8107773 3476.4013912 1804.5854572 29856.8566750 47509.5512539 24524.2427584 96708.3467115 98585 62060 151211 1249 34334 9242 159508 19.10 12.02 29.29 0.24 6.65 1.79 30.90 15.13 431797.3527101 77003.0770055 508800.4297156 MULTIPOLYGON (((-128741.8 5...


Note that there are a number of reasons why the estimated population values are likely to differ from the population numbers in the water system dataset (e.g., the depicted boundaries may not be correct or exact, the supplier may have used different methods to count/estimate the population they serve, the time frames for the estimates may be different, etc.). But, there may also be some cases where the numbers differ significantly – depending on the actual analysis being performed, this may mean that further work is needed for certain areas, or could mean that this method may not be sufficient and different methods are needed.

For water systems with a small population and/or service area, the estimated demographics may not match the population numbers in the original water system dataset very well. You can see this in Table 3 by comparing the POPULATION field, which contains the total population values from the water supplier dataset, with the population_total field, which contains the total population estimated from the census data; the difference between the two is summarized in the population_percent_difference field. This probably indicates that, for small areas, some adjustments and/or further analysis may be needed, and the preliminary estimated values should be treated with some caution/skepticism.

Note: See Section 6.6.2 below for some initial investigation into water systems whose estimated population is zero.

water_systems_sac_demographics %>% 
    arrange(POPULATION) %>% 
    slice(1:10) %>% 
    select(WATER_SY_1, POPULATION, population_total, population_percent_difference) %>% 
    st_drop_geometry() %>% 
    kable()
Table 3: 10 Smallest Water Systems by Population
WATER_SY_1 POPULATION population_total population_percent_difference
DELTA CROSSING MHP 30 0 -100.00
LAGUNA VILLAGE RV PARK 32 20 -37.50
LINCOLN CHAN-HOME RANCH 33 4 -87.88
MAGNOLIA MUTUAL WATER 40 1 -97.50
EDGEWATER MOBILE HOME PARK 40 0 -100.00
FREEPORT MARINA 42 3 -92.86
TUNNEL TRAILER PARK 44 0 -100.00
PLANTATION MOBILE HOME PARK 44 10 -77.27
SEQUOIA WATER ASSOC 54 0 -100.00
HAPPY HARBOR (SWS) 60 0 -100.00

But for larger water systems, the estimated population values seem to be more in line with the population numbers in the original dataset. You can see this in Table 4 by, as above, comparing the POPULATION field, which contains the total population values from the water supplier dataset, with the population_total field, which contains the total population estimated from the census data; the difference between the two is summarized in the population_percent_difference field.

water_systems_sac_demographics %>% 
    arrange(desc(POPULATION)) %>% 
    slice(1:10) %>% 
    select(WATER_SY_1, POPULATION, population_total, population_percent_difference) %>% 
    st_drop_geometry() %>% 
    kable()
Table 4: 10 Largest Water Systems by Population
WATER_SY_1 POPULATION population_total population_percent_difference
CITY OF SACRAMENTO MAIN 510931 516189 1.03
SACRAMENTO SUBURBAN WATER DISTRICT 184385 193126 4.74
SCWA - LAGUNA/VINEYARD 172666 145495 -15.74
FOLSOM, CITY OF - MAIN 68122 62462 -8.31
CITRUS HEIGHTS WATER DISTRICT 65911 68912 4.55
CALAM - SUBURBAN ROSEMONT 53563 57897 8.09
CALAM - PARKWAY 48738 58635 20.31
CALAM - LINCOLN OAKS 47487 42916 -9.63
GOLDEN STATE WATER CO. - CORDOVA 44928 48115 7.09
ELK GROVE WATER SERVICE 42540 42647 0.25

6.4 Plot Results

As a check, we can make some plots to visualize the data before saving.

For plotting, it’ll help to first convert from wide to long format, and adjust the group names so that they can be used as titles.

water_systems_sac_demographics_long <- water_systems_sac_demographics %>% 
    select(WATER_SY_1, starts_with('percent_')) %>% # select only the fields with percentages, and the water system name/id
    # convert to long format
    pivot_longer(cols = starts_with('percent_'), names_to = 'metric') %>% 
    # format the metric field to make titles
    mutate(metric = metric %>% 
               str_remove_all(pattern = 'percent_') %>% 
               str_replace_all(pattern = '_', replacement = ' ') %>% 
               str_replace_all(pattern = ' or ', replacement = ' / ') %>% 
               str_to_title(.) %>% 
               str_remove_all(pattern = ' / Alaska Native')
    )

Here’s a view of the structure of the reformatted data:

glimpse(water_systems_sac_demographics_long)
Rows: 434
Columns: 4
$ WATER_SY_1 <chr> "HOOD WATER MAINTENCE DIST [SWS]", "HOOD WATER MAINTENCE DI…
$ geometry   <MULTIPOLYGON [m]> MULTIPOLYGON (((-132703 403..., MULTIPOLYGON (…
$ metric     <chr> "Asian", "Black / African American", "Hispanic / Latino", "…
$ value      <dbl> 0.00, 0.00, 69.19, 0.00, 2.10, 0.00, 28.71, 15.91, 24.01, 1…

Figure 4 shows each racial/ethic group’s share of the population served by each water system.

plot_results_facet <- ggplot() +
    geom_sf(data = water_systems_sac_demographics_long, 
            aes(fill = value), 
            color = 'black') +
    geom_sf(data = counties_ca %>%
                filter(NAME == 'Sacramento'),
            color = 'darkgrey',
            linewidth = 0.5,
            fill = NA) +
    facet_wrap( ~ metric, ncol = 4) + 
    scale_fill_distiller(palette = 'Blues', direction = 1) +
    labs(title = 'Community Water Systems in Sacramento County',
         fill = '% of Service\nArea Population', 
         caption = paste0('Data from ', acs_year, ' 5-year ACS')) +
    theme_void()
plot_results_facet
Figure 4: Portion of population of different racial/ethic groups served by each water system in the Sacramento County area

Since the values for some groups are hard to distinguish, we can show the results for a single racial/ethnic group.

group_plot <- 'Black / African American'

Figure 5 shows the results for the Black / African American racial/ethnic group.

plot_results_1_group <- ggplot() +
    geom_sf(data = water_systems_sac_demographics_long %>% 
                filter(metric == group_plot), 
            aes(fill = value), 
            color = 'black') +
    scale_fill_distiller(palette = 'Blues', 
                         direction = 1) +
    geom_sf(data = counties_ca %>% 
                filter(NAME == 'Sacramento'), 
            color = 'darkgrey', 
            linewidth = 0.5,
            fill = NA) +
    labs(title = 'Community Water Systems in Sacramento County',
         fill = paste0('% ', group_plot, '\nPopulation in Service Area'), 
         caption = paste0('Data from ', acs_year, ' 5-year ACS')) +
    theme_void()
plot_results_1_group
Figure 5: Portion of Black or African American residents served by each water system in the Sacramento County Area

As another example, we may want to look at the portion of all Non-White residents served by water systems, which is shown in Figure 6.

plot_results_non_white <- ggplot() +
    geom_sf(data = water_systems_sac_demographics %>% 
                mutate(percent_non_white = 100 - percent_white), # compute non-white portion of population for each water system
            aes(fill = percent_non_white), 
            color = 'black') +
    scale_fill_distiller(palette = 'Blues', 
                         direction = 1) +
    geom_sf(data = counties_ca %>% 
                filter(NAME == 'Sacramento'), 
            color = 'darkgrey', 
            linewidth = 0.5,
            fill = NA) +
    labs(title = 'Community Water Systems in Sacramento County',
         fill = '% Non-White Population \nin Service Area', 
         caption = paste0('Data from ', acs_year, ' 5-year ACS')) +
    theme_void()
plot_results_non_white
Figure 6: Portion of Non-White residents served by each water system in the Sacramento County Area

6.5 Save Results

Once we’ve finished the computations and verified the outputs look reasonable, we can save the results to output files so they can be re-used and shared. The results can be saved in tabular (e.g., csv, excel) and/or spatial (e.g., shapefile, geopackage) formats, which may be helpful for different use cases. Note that you may need to think about exactly what variables to include in the output file(s) and how to format the output datasets (e.g., wide versus long format).

The chunk of code below (which is hidden by default), just tests to see whether any of the datasets to be saved have been changed since the previous version was saved. In general this is probably not needed for a typical workflow and can be ignored for most use cases – it is just used here to make rendering of this document a little more efficient.

Code
# compute hash for datasets to be saved (i.e., a unique identifier for each dataset), and compare against previous versions

## define file that stores hash (unique identifier for dataset)
hash_file <- here('03_data_results', 
                  'dataset_hash.csv')

## compute hashes (unique identifier for datasets)
hash_current <- digest(object = water_systems_sac_demographics, 
                       algo = 'md5')
hash_current_long <- digest(object = water_systems_sac_demographics_long, 
                            algo = 'md5')
hash_table_current <- tibble(dataset = c('water_systems_sac_demographics', 'water_systems_sac_demographics_long'),
                             hash = c(hash_current, hash_current_long))

## get the previous hashes from file (if it exists), else create a new file to store the hashes
if (file.exists(hash_file)) {
    hash_table_previous <- read_csv(file = hash_file)
} else {
    file.create(hash_file)
    hash_table_previous <- tibble(dataset = c('water_systems_sac_demographics', 'water_systems_sac_demographics_long'),
                             hash = c('missing', 'missing'))
}

## if new hash is different from previous hash, set flag to update the output file (i.e., write a new version of the file)
file_update <- !identical(hash_table_current %>% filter(dataset == 'water_systems_sac_demographics') %>% pull(hash),
                          hash_table_previous %>% filter(dataset == 'water_systems_sac_demographics') %>% pull(hash))
file_update_long <- !identical(hash_table_current %>% filter(dataset == 'water_systems_sac_demographics_long') %>% pull(hash),
                               hash_table_previous %>% filter(dataset == 'water_systems_sac_demographics_long') %>% pull(hash))

## write current hashes to file (for comparison with future versions)
write_csv(x = hash_table_current, 
          file = hash_file, 
          append = FALSE)

6.5.1 Tabular Dataset

The code below saves the tabular results to a csv file – note that this dataset is in the ‘wide’ format we originally produced the results in:

if (file_update == TRUE) {
    write_csv(water_systems_sac_demographics %>% 
                  st_drop_geometry(), # drop the spatial data since this is a tabular format
              file = here('03_data_results',
                          'water_system_demographics_sac.csv'))   
}

For the tabular data, it might also be useful to save the data in the long/tidy format we developed above when making plots:

if (file_update_long == TRUE) {
    write_csv(water_systems_sac_demographics_long %>% 
                  st_drop_geometry(), # drop the spatial data since this is a tabular format
              file = here('03_data_results',
                          'water_system_demographics_sac_long.csv'))
}

6.5.2 Spatial Dataset

To save the output in a geospatial format, it may be best to save the data in a wide format, so that all of the attribute data for each target area (water system) is in a single row along with its spatial data (i.e. the system boundary information). The code below saves the results – in wide format – to a geopackage file, which is a spatial file format that is similar to a shapefile.

if (file_update == TRUE) {
    st_write(water_systems_sac_demographics, 
             here('03_data_results',
                  'water_system_demographics_sac.gpkg'), 
             append = FALSE)  
}

6.6 Check – Manual Calculations

To check the interpolation obtained from the aw_interpolate function and demonstrate how it works, we can ‘manually’ perform the same types of weighted average calculation using lower level functions from the sf package. In this case, to keep the operations relatively simple, we’ll just perform the calculation for an individual water system, then check that calculated value against the results obtained from the aw_interpolate function. However, the process is the similar for the other suppliers used in this example.

# pick a system to check
system_check <- 'CARMICHAEL WATER DISTRICT'

6.6.1 Total Population

# get the total estimated population for this supplier from above
population_weighted_interp <- water_systems_sac_demographics %>% 
    filter(WATER_SY_1 == system_check) %>% 
    pull(population_total)

In this case, we’ll check the calculation for the water system: CARMICHAEL WATER DISTRICT. The estimated population for this system using the areal interpolation above (Section 6.2) was: 39,253.

To perform the ‘manual’ calculation, we’ll first get the portions of the census units that intersect the target water system’s service area. They are shown in red in Figure 7 below (the water system boundary is shown in black, and all census units which overlap the system are shown with a randomly chosen fill color).

# get portion of census units that intersect the system area ----
interpolate_manual_pop <- st_intersection(census_data_acs %>% 
                                              mutate(total_area = st_area(.)), 
                                          water_systems_sac %>%
                                              filter(WATER_SY_1 == system_check))

# make a plot to check the intersection
## plot census units that overlap the system area
plot_manual_check <- ggplot() +
    geom_sf(data = census_data_acs %>% 
                st_filter(water_systems_sac %>%
                              filter(WATER_SY_1 == system_check)),
            aes(fill = GEOID, alpha = 0.8),
            # fill = alpha('blue', 0.8),
            color = 'grey', 
            linewidth = 0.5,
            show.legend = FALSE) +
    scale_fill_manual(values = unname(pal)) +
    geom_sf(data = water_systems_sac %>%
                filter(WATER_SY_1 == system_check),
            fill = NA,
            color = alpha('black', 1),
            linewidth = 2) +
    geom_sf(data = interpolate_manual_pop,
            fill = NA,
            color = 'red',
            linewidth = 0.5) + 
    theme_void()

# show the plot
plot_manual_check
Figure 7: Portions of census units (red) intersecting the water system service area (black).

Then we’ll estimate the population within each of those intersecting portions of the census units by computing an area weighted population. The area weighted population is computed by multiplying the total population of the census unit by the percent of that census unit’s area that overlaps the water supplier’s service area.

interpolate_manual_pop <- interpolate_manual_pop %>% 
    mutate(intersect_area = st_area(.)) %>% 
    mutate(weight = drop_units(intersect_area / total_area)) %>% 
    mutate(population_weighted = population_total * weight)

glimpse(interpolate_manual_pop %>% 
            select(GEOID, NAME, population_total, 
                   total_area, intersect_area, weight, 
                   population_weighted))
Rows: 43
Columns: 8
$ GEOID               <chr> "060670058012", "060670079043", "060670058041", "0…
$ NAME                <chr> "Block Group 2; Census Tract 58.01; Sacramento Cou…
$ population_total    <dbl> 1743, 1103, 1136, 1649, 1750, 2255, 1305, 2030, 12…
$ total_area          [m^2] 644333.9 [m^2], 573602.4 [m^2], 742430.6 [m^2], 65…
$ intersect_area      [m^2] 497822.3779 [m^2], 436050.8824 [m^2], 17898.9277 […
$ weight              <dbl> 0.772615496, 0.760197080, 0.024108554, 0.057156171…
$ population_weighted <dbl> 1346.668809, 838.497379, 27.387318, 94.250527, 175…
$ geometry            <GEOMETRY [m]> POLYGON ((-117078 66824.83,..., POLYGON (…

The weighted average population for the water system is the sum of the area weighted population within each of the intersecting portions of the census units.

# this should be the same as the interpolated result
population_weighted_manual <- interpolate_manual_pop %>% 
    pull(population_weighted) %>% 
    sum() %>% 
    round(digits = 0)
population_weighted_manual
[1] 39253

So, as a final check, the ‘manually’ calculated total population for CARMICHAEL WATER DISTRICT is 39,253, and the value obtained from the aw_interpolate function above was 39,253.

6.6.2 Systems with Zero Estimated Population

For some water systems, the estimated population using the areal interpolation above (Section 6.2) was zero, and it may be useful to look at an example to see what’s going on with one of those cases.

# pick a system to check
system_check_zero <- water_systems_sac_demographics %>% 
    filter(population_total == 0) %>% 
    arrange(WATER_SY_1) %>% 
    slice(1) %>% 
    pull(WATER_SY_1)

# get the total estimated population for this system from above
population_weighted_interp_zero <- water_systems_sac_demographics %>% 
    filter(WATER_SY_1 == system_check_zero) %>% 
    pull(population_total)

In this case, we’ll check the calculation for the water system: B & W RESORT MARINA. The estimated population for this system using the areal weighted interpolation with the aw_interpolate function above (Section 6.2) was: 0.

To check this result, we’ll first get the portions of the census units that intersect the target water system’s service area, as was done for the other ‘manual’ calculations above. This is shown in Figure 8 below, with the water system boundary is shown in black, census unit(s) overlapping the water system shown in grey, and intersecting portion(s) of the census unit(s) shown in red.

# get portion of census units that intersect the system area ----
interpolate_manual_zero <- st_intersection(census_data_acs %>% 
                                               mutate(total_area = st_area(.)), 
                                           water_systems_sac %>%
                                               filter(WATER_SY_1 == system_check_zero))

# make a plot to check the intersection
## plot census units that overlap the system area
plot_manual_check_zero <- ggplot() +
    geom_sf(data = census_data_acs %>%
                st_filter(water_systems_sac %>%
                              filter(WATER_SY_1 == system_check_zero)),
            fill = alpha('grey', 0.8),
            color = 'grey',
            linewidth = 0.5,
            show.legend = FALSE) +
    geom_sf(data = water_systems_sac %>%
                filter(WATER_SY_1 == system_check_zero),
            fill = NA,
            color = alpha('black', 1),
            linewidth = 2) +
    geom_sf(data = interpolate_manual_zero,
            fill = NA,
            color = 'red',
            linewidth = 0.5) + 
    theme_void()

# show the plot
plot_manual_check_zero
Figure 8: Portions of census units (red) intersecting the water system service area (black).

Then we’ll estimate the population within each of those intersecting portions of the census units by computing an area weighted population (as was done above in Section 6.6.1) .

interpolate_manual_zero <- interpolate_manual_zero %>% 
    mutate(intersect_area = st_area(.)) %>% 
    mutate(weight = drop_units(intersect_area / total_area)) %>% 
    mutate(population_weighted = population_total * weight)

glimpse(interpolate_manual_zero %>% 
            select(GEOID, NAME, population_total, 
                   total_area, intersect_area, weight, 
                   population_weighted))
Rows: 1
Columns: 8
$ GEOID               <chr> "060670098001"
$ NAME                <chr> "Block Group 1; Census Tract 98; Sacramento County…
$ population_total    <dbl> 770
$ total_area          [m^2] 22675536 [m^2]
$ intersect_area      [m^2] 2523.735 [m^2]
$ weight              <dbl> 0.0001112977
$ population_weighted <dbl> 0.08569924
$ geometry            <POLYGON [m]> POLYGON ((-138282.2 13643.2...

The weighted average population for the water system is the sum of the area weighted population within each of the intersecting portions of the census unit(s).

# this should be the same as the interpolated result
population_weighted_manual_zero <- interpolate_manual_zero %>% 
    pull(population_weighted) %>% 
    sum() 
population_weighted_manual_zero
[1] 0.08569924

In this case, the (un-rounded) ‘manually’ calculated total population for B & W RESORT MARINA is 0.08569924 (for reference, the rounded value obtained from the aw_interpolate function was 0). From the Figure 8 above, you can see that the service area reported for this system is very small, only covering a small fraction of a single census unit, resulting in a population estimate that is very low. In this case, it could be that the system area was drawn incorrectly (i.e., maybe it doesn’t really depict the entire service area), in which case the reported service area should be revised. Or, it’s possible that the population within the given census unit is very un-evenly distributed and instead there’s a relatively high density population cluster in the depicted service area, in which case a more sophisticated method than an area-weighted average should be used (e.g., maybe consider the density of buildings, roads, and/or other features associated with inhabited areas).

7 Alternative Computation Methods

Warning

This section is in progress…

7.1 Population Weighted Interpolation

Warning

This section is in progress…

This could be used for estimating certain types of metrics (e.g., median household income, CalEnviroScreen scores), using known or estimated population distributions (i.e., not used directly to determine population count in a given area).

There may be a few ways to do this:

  1. ‘Manual’ calculation – e.g., estimate population of overlapping census units (using total population multiplied by % of the census unit within the target area), then use those derived populations as weights (rather than the area of overlap)
  2. Use the interpolate_pw function from the tidycensus package (I think this is based on the methodology described here but need to investigate further).

As a rough example of option #2:

First get 2020 census population by census block (not strictly necessary, but this is the most spatially granular census population data available):

# get census data
census_data_blocks <- get_decennial(geography = 'block', # can be 'block', 'block group', 'tract', 'county', etc.
                                    state = 'CA', 
                                    county = counties_list,
                                    year = 2020,
                                    variables = c(
                                        'population_total' = 'P2_001N'
                                    ),
                                    output = 'wide', # can be 'wide' or 'tidy'
                                    geometry = TRUE,
                                    cache_table = TRUE) 
Getting data from the 2020 decennial Census
Using the PL 94-171 Redistricting Data Summary File

Then interpolate:

results_interp_popwt <- interpolate_pw(from = census_data_filter %>% 
                                           st_transform(crs_projected) %>% 
                                           filter(!is.na(median_household_income)) %>% 
                                           select(median_household_income), 
                                       to = water_systems_sac %>% 
                                           st_transform(crs_projected), 
                                       to_id = 'WATER_SY_1', 
                                       extensive = FALSE, 
                                       weights = census_data_blocks %>% 
                                           st_transform(crs_projected), 
                                       # weight_placement = 'surface',
                                       weight_column = 'population_total') %>% 
    rename(median_household_income_popwt = median_household_income) # rename results field
results_interp_popwt <- results_interp_popwt %>% 
    left_join(water_systems_sac %>% 
                  st_drop_geometry() %>% 
                  select(SERVICE_CO, POPULATION, WATER_SY_1), 
              by = 'WATER_SY_1')

glimpse(results_interp_popwt)
Rows: 62
Columns: 5
$ WATER_SY_1                    <chr> "HOOD WATER MAINTENCE DIST [SWS]", "MC C…
$ median_household_income_popwt <dbl> 56250.00, 60521.00, 68248.00, NA, 29468.…
$ SERVICE_CO                    <dbl> 82, 199, 34, 64, 128, 83, 28, 50, 164, 5…
$ POPULATION                    <dbl> 100, 700, 40, 150, 256, 150, 32, 100, 35…
$ geometry                      <MULTIPOLYGON [m]> MULTIPOLYGON (((-132703 403…

Note that not all water systems get an estimated value using this method (even if NA values are removed from the source data) – a total of 17 systems are missing results with this method, which tend to be the smallest water systems.

8 Working with Other (Non-Census) Source Data

Warning

This section is in progress…

8.1 CalEnviroScreen

Warning

This section is in progress…

References

Parry, Josiah. 2023. “Arcgislayers: An r Interface for ArcGIS REST Services.”
Pebesma, Edzer, and Roger Bivand. 2023. Spatial Data Science: With Applications in r.” https://doi.org/10.1201/9780429459016.
Prener, Christopher, Revord, and Charles. 2019. areal: An R package for areal weighted interpolation.” Journal of Open Source Software 4 (37). https://doi.org/10.21105/joss.01221.
R Core Team. 2023. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.
Walker, Kyle. 2023a. “Tigris: Load Census TIGER/Line Shapefiles.” https://CRAN.R-project.org/package=tigris.
———. 2023b. “Analyzing US Census Data,” January. https://doi.org/10.1201/9780203711415.
Walker, Kyle, and Matt Herman. 2023. “Tidycensus: Load US Census Boundary and Attribute Data as ’Tidyverse’ and ’Sf’-Ready Data Frames.” https://CRAN.R-project.org/package=tidycensus.
Wickham, Hadley, Mara Averick, Jennifer Bryan, Winston Chang, Lucy D’Agostino McGowan, Romain François, Garrett Grolemund, et al. 2019. “Welcome to the Tidyverse 4: 1686. https://doi.org/10.21105/joss.01686.